Method: Zena::Use::QueryNode::Compiler#process_like

Defined in:
lib/zena/use/query_node.rb

#process_like(left, right, is_not = nil) ⇒ Object

Handle special case for ‘class like ’



326
327
328
329
330
331
332
333
334
335
336
# File 'lib/zena/use/query_node.rb', line 326

def process_like(left, right, is_not = nil)
  if (left == [:field, 'class'] || left == [:field, 'klass']) && right[0] == :field
    if klass = Node.get_class(right[1])
      "#{field_or_attr('kpath')} #{is_not ? 'NOT ' : ''}LIKE #{quote(klass.kpath + '%')}"
    else
      raise ::QueryBuilder::QueryException.new("Unknown class #{right.last.inspect}.")
    end
  else
    process_op(:like, left, right)
  end
end