What does %w(array) mean?

%w(foo bar) is a shortcut for [“foo”, “bar”]. Meaning it’s a notation to write an array of strings separated by spaces instead of commas and without quotes around them. You can find a list of ways of writing literals in zenspider’s quickref.

Why is it bad style to `rescue Exception => e` in Ruby?

TL;DR: Use StandardError instead for general exception catching. When the original exception is re-raised (e.g. when rescuing to log the exception only), rescuing Exception is probably okay. Exception is the root of Ruby’s exception hierarchy, so when you rescue Exception you rescue from everything, including subclasses such as SyntaxError, LoadError, and Interrupt. Rescuing Interrupt prevents … Read more

class

First, the class << foo syntax opens up foo‘s singleton class (eigenclass). This allows you to specialise the behaviour of methods called on that specific object. a=”foo” class << a def inspect ‘”bar”‘ end end a.inspect # => “bar” a=”foo” # new object, new singleton class a.inspect # => “foo” Now, to answer the question: … Read more

How do I get the current absolute URL in Ruby on Rails?

For Rails 3.2 or Rails 4+ You should use request.original_url to get the current URL. Source code on current repo found here. This method is documented at original_url method, but if you’re curious, the implementation is: def original_url base_url + original_fullpath end For Rails 3: You can write “#{request.protocol}#{request.host_with_port}#{request.fullpath}”, since request.url is now deprecated. For … Read more

What is attr_accessor in Ruby?

Let’s say you have a class Person. class Person end person = Person.new person.name # => no method error Obviously we never defined method name. Let’s do that. class Person def name @name # simply returning an instance variable @name end end person = Person.new person.name # => nil person.name = “Dennis” # => no … Read more

How to pass command line arguments to a rake task

You can specify formal arguments in rake by adding symbol arguments to the task call. For example: require ‘rake’ task :my_task, [:arg1, :arg2] do |t, args| puts “Args were: #{args} of class #{args.class}” puts “arg1 was: ‘#{args[:arg1]}’ of class #{args[:arg1].class}” puts “arg2 was: ‘#{args[:arg2]}’ of class #{args[:arg2].class}” end task :invoke_my_task do Rake.application.invoke_task(“my_task[1, 2]”) end # … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)