module ActiveAny::Relation::QueryMethods
Constants
- FROZEN_EMPTY_ARRAY
Public Instance Methods
get_value(name)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 31 def get_value(name) @values[name] || default_value_for(name) end
group(*args)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 65 def group(*args) spawn.group!(*args) end
group!(*args)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 83 def group!(*args) args.flatten! self.group_values += args self end
includes(*args)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 97 def includes(*args) spawn.includes!(*args) end
includes!(*args)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 101 def includes!(*args) args.reject!(&:blank?) args.flatten! self.includes_values |= args self end
limit(value)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 44 def limit(value) spawn.limit!(value) end
limit!(value)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 73 def limit!(value) self.limit_value = value self end
order(*args)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 69 def order(*args) spawn.order!(*args) end
order!(*args)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 90 def order!(*args) args.flatten! self.order_clause += OrderClause.new(args) self end
reverse_order()
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 56 def reverse_order spawn.reverse_order! end
reverse_order!()
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 60 def reverse_order! self.order_clause = order_clause.reverse! self end
set_value(name, value)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 35 def set_value(name, value) assert_mutability! @values[name] = value end
take(limit = nil)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 52 def take(limit = nil) limit ? find_take_with_limit(limit) : find_take end
values()
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 40 def values @values.dup end
where(condition)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 48 def where(condition) spawn.where!(condition) end
where!(condition)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 78 def where!(condition) self.where_clause += WhereClause.new(condition) self end
Private Instance Methods
assert_mutability!()
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 140 def assert_mutability! raise ImmutableRelation if @loaded end
default_value_for(name)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 129 def default_value_for(name) case name when :where then WhereClause.empty when :order then OrderClause.empty when *Relation::MULTI_VALUE_METHODS then FROZEN_EMPTY_ARRAY when *Relation::SINGLE_VALUE_METHODS then nil else raise ArgumentError, "unknown relation value #{name.inspect}" end end
find_take()
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 111 def find_take if loaded records.first else limit(1).records.first end end
find_take_with_limit(limit)
click to toggle source
# File lib/active_any/relation/query_methods.rb, line 119 def find_take_with_limit(limit) if loaded records.take(limit) else limit(limit).to_a end end