Module: SearchQueryParser
- Defined in:
- lib/search_query_parser.rb,
lib/search_query_parser/grammar.rb,
lib/search_query_parser/version.rb,
lib/search_query_parser/interpreter.rb
Defined Under Namespace
Classes: Grammar, Interpreter, ParseError
Constant Summary
collapse
- VERSION =
"0.1.1"
Class Method Summary
collapse
Class Method Details
.to_string(str) ⇒ Object
7
8
9
|
# File 'lib/search_query_parser.rb', line 7
def self.to_string(str)
@interpreter.parse(str).to_s
end
|
.to_ts_query(str, language = 'english', prefix = true) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/search_query_parser.rb', line 11
def self.to_ts_query(str, language = 'english', prefix = true)
language = language.gsub(/[^a-zA-Z\-]/, '')
@interpreter.parse(str).reduce do |op, x, y|
case op
when :term
if prefix
%Q{to_tsquery('#{language}', '#{x}:*')}
else
%Q{to_tsquery('#{language}', '#{x}')}
end
when :not
%Q{(!! #{x})}
when :and
%Q{(#{x} && #{y})}
when :or
%Q{(#{x} || #{y})}
when :join
%Q{(#{x} <-> #{y})}
end
end
end
|