Class: Predicate::Postgres::Rewriter

Inherits:
Sexpr::Rewriter
  • Object
show all
Defined in:
lib/predicate/postgres/rewriter.rb

Defined Under Namespace

Classes: ToLiteral

Instance Method Summary collapse

Instance Method Details

#on_empty(sexpr) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/predicate/postgres/rewriter.rb', line 28

def on_empty(sexpr)
  rewritten = sexpr[1..-1]
    .map{|expr| apply(expr) }
    .unshift(:pg_array_empty)
    .push(:varchar)
  rewritten.extend(PgArray::Empty)
end

#on_intersect(sexpr) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/predicate/postgres/rewriter.rb', line 20

def on_intersect(sexpr)
  rewriter = ToLiteral.new
  rewritten = sexpr[1..-1]
    .map{|expr| rewriter.call(expr) }
    .unshift(:pg_array_overlaps)
  rewritten.extend(PgArray::Overlaps)
end