Module: Litesearch::Model::SequelClassMethods
- Defined in:
- lib/litestack/litesearch/model.rb
Instance Method Summary collapse
- #create_instance(row) ⇒ Object
- #fetch_row(id) ⇒ Object
- #get_connection ⇒ Object
- #search(term) ⇒ Object
Instance Method Details
#create_instance(row) ⇒ Object
169 170 171 172 173 174 175 176 177 |
# File 'lib/litestack/litesearch/model.rb', line 169 def create_instance(row) # we need to convert keys to symbols first! row.keys.each do |k| next if k.is_a? Symbol row[k.to_sym] = row[k] row.delete(k) end call(row) end |
#fetch_row(id) ⇒ Object
151 152 153 |
# File 'lib/litestack/litesearch/model.rb', line 151 def fetch_row(id) self[id] end |
#get_connection ⇒ Object
155 156 157 |
# File 'lib/litestack/litesearch/model.rb', line 155 def get_connection db.instance_variable_get(:@raw_db) end |
#search(term) ⇒ Object
159 160 161 162 163 164 165 166 167 |
# File 'lib/litestack/litesearch/model.rb', line 159 def search(term) dataset.select( Sequel.lit("#{table_name}.*, -#{index_name}.rank AS search_rank") ).inner_join( Sequel.lit("#{index_name}(:term) ON #{table_name}.id = #{index_name}.rowid AND rank != 0", {term: term}) ).order( Sequel.lit("rank") ) end |