aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2017-10-24 23:49:21 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2018-12-20 10:37:15 +0900
commitf3c866a743bc6edc9b67b241e65e6acfccfd3992 (patch)
tree6e9d75583f7512a4622495b1f1c0d2f2f9b9b06e /activerecord/lib
parent097650c194a80004169423c696974c504228c460 (diff)
downloadrails-f3c866a743bc6edc9b67b241e65e6acfccfd3992.tar.gz
rails-f3c866a743bc6edc9b67b241e65e6acfccfd3992.tar.bz2
rails-f3c866a743bc6edc9b67b241e65e6acfccfd3992.zip
Unify _read_attribute definition to use &block
Thanks to ko1, passing block parameter to another method is significantly optimized in Ruby 2.5. https://bugs.ruby-lang.org/issues/14045 Thus we no longer need to keep this ugly hack.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/attribute_methods/read.rb12
1 files changed, 2 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/read.rb b/activerecord/lib/active_record/attribute_methods/read.rb
index 0f7bcba564..4e77339225 100644
--- a/activerecord/lib/active_record/attribute_methods/read.rb
+++ b/activerecord/lib/active_record/attribute_methods/read.rb
@@ -66,16 +66,8 @@ module ActiveRecord
# This method exists to avoid the expensive primary_key check internally, without
# breaking compatibility with the read_attribute API
- if defined?(JRUBY_VERSION)
- # This form is significantly faster on JRuby, and this is one of our biggest hotspots.
- # https://github.com/jruby/jruby/pull/2562
- def _read_attribute(attr_name, &block) # :nodoc:
- @attributes.fetch_value(attr_name.to_s, &block)
- end
- else
- def _read_attribute(attr_name) # :nodoc:
- @attributes.fetch_value(attr_name.to_s) { |n| yield n if block_given? }
- end
+ def _read_attribute(attr_name, &block) # :nodoc
+ @attributes.fetch_value(attr_name.to_s, &block)
end
alias :attribute :_read_attribute