Module: DataMapper::Is::TSearchable::ClassMethods

Defined in:
lib/dm-is-tsearchable/is/tsearchable.rb

Instance Method Summary collapse

Instance Method Details

#auto_migrate_up!(repository_name) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/dm-is-tsearchable/is/tsearchable.rb', line 18

def auto_migrate_up!(repository_name)
  super
    
  __searches.each do |name, columns|
    [
      create_alter_table_sql(repository_name, name),
      create_index_sql(repository_name, name),
      create_trigger_sql(repository_name, name, columns)
    ].each do |sql|
      repository(repository_name).adapter.execute sql
    end
  end
end

#search(q, opts = {}) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/dm-is-tsearchable/is/tsearchable.rb', line 10

def search(q, opts = {})
  opts[:index] ||= 'search'
  finder = all(opts.except(:index, :conditions).merge(:conditions => [
    "#{opts[:index]}_vector @@ plainto_tsquery('english', ?)", q]))
  finder &= all(opts[:conditions]) if opts[:conditions]
  finder
end