Module: Wherex::Visitor

Defined in:
lib/wherex/visitor.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
8
9
# File 'lib/wherex/visitor.rb', line 4

def self.included base
  base.class_eval do
    alias_method_chain :visit_Arel_Nodes_Equality, :wherex
    alias_method_chain :visit_Arel_Nodes_NotEqual, :wherex
  end
end

Instance Method Details

#visit_Arel_Nodes_Equality_with_wherex(*args) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/wherex/visitor.rb', line 11

def visit_Arel_Nodes_Equality_with_wherex *args
  o = args.first
  right = o.right
  if right.present? and right.is_a? Regexp
    ::ActiveRecord::Base.connection.regexp visit(o.left), visit(right)
  else
    visit_Arel_Nodes_Equality_without_wherex *args
  end
end

#visit_Arel_Nodes_NotEqual_with_wherex(*args) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/wherex/visitor.rb', line 21

def visit_Arel_Nodes_NotEqual_with_wherex *args
  o = args.first
  right = o.right
  if right.present? and right.is_a? Regexp
    ::ActiveRecord::Base.connection.regexp_not visit(o.left), visit(right)
  else
    visit_Arel_Nodes_NotEqual_without_wherex *args
  end
end

#visit_Regexp(*args) ⇒ Object



31
32
33
34
# File 'lib/wherex/visitor.rb', line 31

def visit_Regexp *args
  o = args.first
  ::ActiveRecord::Base.connection.regexp_quote(o.source)
end