aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2014-08-29 15:19:32 -0700
committerDavid Heinemeier Hansson <david@loudthinking.com>2014-08-29 15:19:32 -0700
commit961945046848492ddc541700419cf553e7817c94 (patch)
treeb9119602d1b03137c8408afbc1f9fa9614e67ba1 /activesupport/lib
parentcc0d8fbec96aeb1664fe98d45929a236b18aec81 (diff)
downloadrails-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.rb9
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