Can't you do defaults.merge!(options) to modify the object in place?
Kirk

On Wed, Mar 11, 2009 at 5:33 PM, Andrew Grimm <[email protected]>wrote:

> This is probably personal preference, but I usually use an explaining
> variable of defaults and have
>
> defaults = {:width => 800, :align => :left_justify}
> options = defaults.merge(options)
>
> This doesn't mutate the existing options object but creates a new object.
> I'm not sure if this is a bug or feature.
>
> I use double quotes rather than single, but that's because I use plain
> command line ruby rather than rails.
>
> Andrew
>
>
> On Wed, Mar 11, 2009 at 4:03 PM, David Phillips <[email protected]>wrote:
>
>>
>> On 11/03/2009, at 11:20 AM, Christopher Robbie wrote:
>>
>> > c = a || b
>> >
>> > if 'a' is got something, use it, if 'a' is nil(or false) then use 'b'.
>> > love it.
>>
>> c ||= a
>>
>> c = a, but only if c is nil
>>
>> def do_something options
>>   options[:width] ||= 800
>>   options[:align] ||= :left_justify
>>
>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rails-oceania?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to