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