has_defaults 0.4.2 lets you use dagger lambdas

Updated . Posted . Visible to the public.

Starting with has_defaults 0.4.2, default values that are lambdas are no longer called with the current object as argument, but instance_exec'd instead.

This means you can now use dagger lambdas like this:

has_defaults :full_name => -> { "#{first_name} #{last_name}" }

You can also use lambda and proc as long as you don't take parameters:

has_defaults :full_name => lambda { "#{first_name} #{last_name}" }
has_defaults :full_name => proc { "#{first_name} #{last_name}" }

You can no longer write this:

has_defaults :full_name => lambda { |person| "#{person.first_name} #{person.last_name}" }
Profile picture of Henning Koch
Henning Koch
Last edit
Dominik Schöler
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2015-05-08 15:17)