Module: BabySqueel::Nodes

Defined in:
lib/baby_squeel/nodes.rb

Defined Under Namespace

Classes: Attribute, Generic, Proxy

Class Method Summary collapse

Class Method Details

.unwrap(node) ⇒ Object

Unwraps a BabySqueel::Proxy before being passed to ActiveRecord.



18
19
20
21
22
23
24
25
26
# File 'lib/baby_squeel/nodes.rb', line 18

def unwrap(node)
  if node.respond_to? :_arel
    node._arel
  elsif node.is_a? Array
    node.map { |n| unwrap(n) }
  else
    node
  end
end

.wrap(arel) ⇒ Object

Wraps an Arel node in a Proxy so that it can be extended.



8
9
10
11
12
13
14
# File 'lib/baby_squeel/nodes.rb', line 8

def wrap(arel)
  if arel.class.parents.include?(Arel)
    Generic.new(arel)
  else
    arel
  end
end