aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/query_methods.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/relation/query_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb26
1 files changed, 9 insertions, 17 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 10492165fb..6b7e03f9f7 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -10,7 +10,9 @@ module ActiveRecord
:where_values, :having_values, :bind_values,
:limit_value, :offset_value, :lock_value, :readonly_value, :create_with_value,
:from_value, :reordering_value, :reverse_order_value,
- :uniq_value, :references_values
+ :uniq_value, :references_values, :extending_values
+
+ alias extensions extending_values
def includes(*args)
args.empty? ? self : clone.includes!(*args)
@@ -97,14 +99,9 @@ module ActiveRecord
end
end
- def select!(value = Proc.new)
- if block_given?
- # TODO: test
- to_a.select! { |*block_args| value.call(*block_args) }
- else
- self.select_values += Array.wrap(value)
- self
- end
+ def select!(value)
+ self.select_values += Array.wrap(value)
+ self
end
def group(*args)
@@ -353,7 +350,9 @@ module ActiveRecord
def extending!(*modules, &block)
modules << Module.new(&block) if block_given?
- self.send(:apply_modules, modules.flatten)
+ self.extending_values = modules.flatten
+ extend(*extending_values) if extending_values.any?
+
self
end
@@ -494,13 +493,6 @@ module ActiveRecord
end
end
- def apply_modules(modules)
- unless modules.empty?
- @extensions += modules
- modules.each {|extension| extend(extension) }
- end
- end
-
def reverse_sql_order(order_query)
order_query = ["#{quoted_table_name}.#{quoted_primary_key} ASC"] if order_query.empty?