Passing hash as arguments

Is this the best way (though contrived) to use a hash as an argument in
ruby?

def state_name_age(feeling, info{})
“#{:name} is #{feeling} #{:age} #{:units} old”
end

my_info = {}
my_info = {:name => “Kate”, :units => “years”, :age => 24}

irb(main):018:0> state_name_age(‘happily’, my_info)
=> “Kate is happily 24 years old”

then…

irb(main):068:0> state_name_age ‘happily’
=> " is happily old!"

This seems to be the way Rails has things set up to pass optional
arguments… Is that correct?

Tom L. wrote in post #773986:

def state_name_age(feeling, info{})
“#{:name} is #{feeling} #{:age} #{:units} old”
end

Try:

def state_name_age(feeling, info={})
“#{info[:name]} is #{info[feeling]} #{info[:age]} #{info[:units]}
old”
end

irb(main):018:0> state_name_age(‘happily’, :name => “Kate”, :units =>
“years”, :age => 24)

Is there anyway to pass the hash without having to “expand” it as you
did. Similar to:

Make the hash

options = {:option1 => “hello”, :option2 => “cats”}

Call the function

my_function(options)

Would that work?

def state_name_age(feeling, info{})
“#{:name} is #{feeling} #{:age} #{:units} old”
end

Try:

def state_name_age(feeling, info={})
“#{info[:name]} is #{info[feeling]} #{info[:age]} #{info[:units]}
old”
end

irb(main):018:0> state_name_age(‘happily’, :name => “Kate”, :units =>
“years”, :age => 24)

On Nov 19, 2013, at 8:36 PM, Philip D. [email protected] wrote:

end
my_function(options)

Would that work?

Try It And See.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs