Class: Arel::Nodes::Tsearch

Inherits:
InfixOperation
  • Object
show all
Defined in:
lib/pg_searchable/arel/nodes/tsearch.rb

Instance Method Summary collapse

Constructor Details

#initialize(attribute, query, dictionary) ⇒ Tsearch

Returns a new instance of Tsearch.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/pg_searchable/arel/nodes/tsearch.rb', line 6

def initialize(attribute, query, dictionary)
  relation  = attribute.relation
  columns   = relation.engine.connection.columns(relation.name)
  left      = case columns.find {|c| c.name == attribute.name.to_s }.type
  when :tsvector
    attribute
  else
    Arel::Nodes::ToTsvector.new(attribute, dictionary)
  end

  super(:'@@', left, Arel::Nodes::ToTsquery.new(query, dictionary))
end