Class: ArelHash::Optimizer

Inherits:
Object
  • Object
show all
Defined in:
lib/arel_hash/optimizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(predicates = []) ⇒ Optimizer

Returns a new instance of Optimizer.



3
4
5
# File 'lib/arel_hash/optimizer.rb', line 3

def initialize(predicates = [])
  @predicates = predicates
end

Instance Method Details

#optimize(arel_hash) ⇒ Object



7
8
9
10
# File 'lib/arel_hash/optimizer.rb', line 7

def optimize(arel_hash)
  operator, value = ArelHash.singleton_tuple!(arel_hash)
  (i(and or).include?(operator)) ? optimize_collection_node(operator, value) : arel_hash
end