Module: ActiveRecord::Like::WhereChainExtensions

Defined in:
lib/active_record/like.rb

Instance Method Summary collapse

Instance Method Details

#like(opts, *rest) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/active_record/like.rb', line 6

def like(opts, *rest)
  opts.each do |k,v|
    if v.is_a?(Array) && v.empty?
      opts[k] = ''
    end
  end

  chain_node(Arel::Nodes::Matches, opts, *rest) do |nodes|
    nodes.inject { |memo, node| Arel::Nodes::Or.new(memo, node) }
  end
end

#not_like(opts, *rest) ⇒ Object



18
19
20
21
22
23
# File 'lib/active_record/like.rb', line 18

def not_like(opts, *rest)
  opts = opts.reject { |_, v| v.is_a?(Array) && v.empty? }
  chain_node(Arel::Nodes::DoesNotMatch, opts, *rest) do |nodes|
    Arel::Nodes::And.new(nodes)
  end
end