diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2014-08-29 15:19:32 -0700 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2014-08-29 15:19:32 -0700 |
commit | 961945046848492ddc541700419cf553e7817c94 (patch) | |
tree | b9119602d1b03137c8408afbc1f9fa9614e67ba1 /activesupport/lib | |
parent | cc0d8fbec96aeb1664fe98d45929a236b18aec81 (diff) | |
download | rails-961945046848492ddc541700419cf553e7817c94.tar.gz rails-961945046848492ddc541700419cf553e7817c94.tar.bz2 rails-961945046848492ddc541700419cf553e7817c94.zip |
Use instance_eval on @tenderlove's suggestion :trollface:
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/core_ext/object/blank.rb | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/core_ext/object/blank.rb b/activesupport/lib/active_support/core_ext/object/blank.rb index 893858fcd6..99fd22ff56 100644 --- a/activesupport/lib/active_support/core_ext/object/blank.rb +++ b/activesupport/lib/active_support/core_ext/object/blank.rb @@ -40,15 +40,16 @@ class Object # region = params[:state].presence || params[:country].presence || 'US' # # You can also use this with a block that will be yielded if the object is present - # and the result of that block will then be returned + # and the result of that block will then be returned. The block itself is run against + # the instance you're running #presence on (using instance_eval) # - # project.account.owner.presence { |p| p.name.first } || 'Nobody' + # project.account.owner.presence { name.first } || 'Nobody' # # @return [Object] - def presence + def presence(&block) if present? if block_given? - yield self + instance_eval(&block) else self end |