diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-12-29 15:28:40 +0530 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-12-29 15:28:40 +0530 |
commit | 0a1ff1a14ffcc96204ba1d391207d13e68cda8b0 (patch) | |
tree | 8cda13bb902b8f8d01410f06d853abb0cc08a53f /activerecord/lib/active_record | |
parent | 1785e1b26e761cfad365869b5dc36ce8495cf2b5 (diff) | |
download | rails-0a1ff1a14ffcc96204ba1d391207d13e68cda8b0.tar.gz rails-0a1ff1a14ffcc96204ba1d391207d13e68cda8b0.tar.bz2 rails-0a1ff1a14ffcc96204ba1d391207d13e68cda8b0.zip |
Rewrite Relation#readonly, eager_load, preload using Object#tap
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index e40432bf6a..72e7c234eb 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -33,21 +33,15 @@ module ActiveRecord alias :& :merge def preload(*associations) - relation = spawn - relation.preload_associations += Array.wrap(associations) - relation + spawn.tap {|r| r.preload_associations += Array.wrap(associations) } end def eager_load(*associations) - relation = spawn - relation.eager_load_associations += Array.wrap(associations) - relation + spawn.tap {|r| r.eager_load_associations += Array.wrap(associations) } end def readonly(status = true) - relation = spawn - relation.readonly = status - relation + spawn.tap {|r| r.readonly = status } end def select(selects) @@ -135,9 +129,7 @@ module ActiveRecord @relation.join(join, join_type) end - relation = spawn(join_relation) - relation.readonly = true - relation + spawn(join_relation) { |r| r.readonly = true } end def where(*args) |