Sha256: 594c0af86a3aa446411a6f24b772d6462a7282ba086989214f42a123c398bde0
Contents?: true
Size: 697 Bytes
Versions: 7
Compression:
Stored size: 697 Bytes
Contents
require 'treetop' module Murlsh # Search conditions builder for ActiveRecord conditions. class SearchConditions def initialize(q); @q = q; end # Search conditions builder for ActiveRecord conditions. def conditions unless q.to_s.empty? parser = Murlsh::SearchGrammarParser.new tokens = parser.parse(q).content search_cols = %w{name title url} likes = [] params = [] search_cols.product(tokens).each do |col,tok| likes << "LOWER(#{col}) LIKE ?" params << "%#{tok.downcase}%" end [likes.join(' OR ')].push(*params) else [] end end attr_accessor :q end end
Version data entries
7 entries across 7 versions & 1 rubygems