Skip to content

Commit

Permalink
Add documentation for query_methods bang methods
Browse files Browse the repository at this point in the history
  • Loading branch information
oscardelben committed Jul 16, 2012
1 parent 37afdef commit 993ef9e
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion activerecord/lib/active_record/relation/query_methods.rb
Expand Up @@ -67,6 +67,7 @@ def includes(*args)
args.empty? ? self : spawn.includes!(*args) args.empty? ? self : spawn.includes!(*args)
end end


# Like #includes, but modifies the relation in place.
def includes!(*args) def includes!(*args)
args.reject! {|a| a.blank? } args.reject! {|a| a.blank? }


Expand All @@ -84,6 +85,8 @@ def eager_load(*args)
args.blank? ? self : spawn.eager_load!(*args) args.blank? ? self : spawn.eager_load!(*args)
end end


# Like #eager_load, but modifies relation in place.
# object.
def eager_load!(*args) def eager_load!(*args)
self.eager_load_values += args self.eager_load_values += args
self self
Expand All @@ -97,6 +100,7 @@ def preload(*args)
args.blank? ? self : spawn.preload!(*args) args.blank? ? self : spawn.preload!(*args)
end end


# Like #preload, but modifies relation in place.
def preload!(*args) def preload!(*args)
self.preload_values += args self.preload_values += args
self self
Expand All @@ -114,6 +118,7 @@ def references(*args)
args.blank? ? self : spawn.references!(*args) args.blank? ? self : spawn.references!(*args)
end end


# Like #references, but modifies relation in place.
def references!(*args) def references!(*args)
args.flatten! args.flatten!


Expand Down Expand Up @@ -158,6 +163,7 @@ def select(value = Proc.new)
end end
end end


# Like #select, but modifies relation in place.
def select!(value) def select!(value)
self.select_values += Array.wrap(value) self.select_values += Array.wrap(value)
self self
Expand All @@ -179,6 +185,7 @@ def group(*args)
args.blank? ? self : spawn.group!(*args) args.blank? ? self : spawn.group!(*args)
end end


# Like #group, but modifies relation in place.
def group!(*args) def group!(*args)
args.flatten! args.flatten!


Expand All @@ -200,6 +207,7 @@ def order(*args)
args.blank? ? self : spawn.order!(*args) args.blank? ? self : spawn.order!(*args)
end end


# Like #order, but modifies relation in place.
def order!(*args) def order!(*args)
args.flatten! args.flatten!


Expand All @@ -224,6 +232,7 @@ def reorder(*args)
args.blank? ? self : spawn.reorder!(*args) args.blank? ? self : spawn.reorder!(*args)
end end


# Like #reorder, but modifies relation in place.
def reorder!(*args) def reorder!(*args)
args.flatten! args.flatten!


Expand All @@ -240,6 +249,7 @@ def joins(*args)
args.compact.blank? ? self : spawn.joins!(*args) args.compact.blank? ? self : spawn.joins!(*args)
end end


# Like #joins, but modifies relation in place.
def joins!(*args) def joins!(*args)
args.flatten! args.flatten!


Expand Down Expand Up @@ -367,6 +377,7 @@ def having(opts, *rest)
opts.blank? ? self : spawn.having!(opts, *rest) opts.blank? ? self : spawn.having!(opts, *rest)
end end


# Like #having, but modifies relation in place.
def having!(opts, *rest) def having!(opts, *rest)
references!(PredicateBuilder.references(opts)) if Hash === opts references!(PredicateBuilder.references(opts)) if Hash === opts


Expand All @@ -383,6 +394,7 @@ def limit(value)
spawn.limit!(value) spawn.limit!(value)
end end


# Like #limit, but modifies relation in place.
def limit!(value) def limit!(value)
self.limit_value = value self.limit_value = value
self self
Expand All @@ -399,17 +411,19 @@ def offset(value)
spawn.offset!(value) spawn.offset!(value)
end end


# Like #offset, but modifies relation in place.
def offset!(value) def offset!(value)
self.offset_value = value self.offset_value = value
self self
end end


# Specifies locking settings (default to +true+). For more information # Specifies locking settings (default to +true+). For more information
# on locking, please see +ActiveRecord::Lockin+g. # on locking, please see +ActiveRecord::Locking+.
def lock(locks = true) def lock(locks = true)
spawn.lock!(locks) spawn.lock!(locks)
end end


# Like #lock, but modifies relation in place.
def lock!(locks = true) def lock!(locks = true)
case locks case locks
when String, TrueClass, NilClass when String, TrueClass, NilClass
Expand Down Expand Up @@ -464,6 +478,7 @@ def readonly(value = true)
spawn.readonly!(value) spawn.readonly!(value)
end end


# Like #readonly, but modifies relation in place.
def readonly!(value = true) def readonly!(value = true)
self.readonly_value = value self.readonly_value = value
self self
Expand Down Expand Up @@ -513,6 +528,7 @@ def from(value, subquery_name = nil)
spawn.from!(value, subquery_name) spawn.from!(value, subquery_name)
end end


# Like #from, but modifies relation in place.
def from!(value, subquery_name = nil) def from!(value, subquery_name = nil)
self.from_value = [value, subquery_name] self.from_value = [value, subquery_name]
self self
Expand All @@ -532,6 +548,7 @@ def uniq(value = true)
spawn.uniq!(value) spawn.uniq!(value)
end end


# Like #uniq, but modifies relation in place.
def uniq!(value = true) def uniq!(value = true)
self.uniq_value = value self.uniq_value = value
self self
Expand Down Expand Up @@ -581,6 +598,7 @@ def extending(*modules, &block)
end end
end end


# Like #extending, but modifies relation in place.
def extending!(*modules, &block) def extending!(*modules, &block)
modules << Module.new(&block) if block_given? modules << Module.new(&block) if block_given?


Expand All @@ -597,6 +615,7 @@ def reverse_order
spawn.reverse_order! spawn.reverse_order!
end end


# Like #reverse_order, but modifies relation in place.
def reverse_order! def reverse_order!
self.reverse_order_value = !reverse_order_value self.reverse_order_value = !reverse_order_value
self self
Expand Down

0 comments on commit 993ef9e

Please sign in to comment.