class Dusen::Parser
Constants
- FIELD_QUERY
- TEXT_QUERY
Public Class Methods
extract_field_query_tokens(query_string, query)
click to toggle source
# File lib/dusen/parser.rb, line 26 def self.extract_field_query_tokens(query_string, query) while query_string.sub!(FIELD_QUERY, '') field = $2 value = "#{$4}#{$6}" exclude = "#{$1}" == "-" options = { :field => field, :value => value, :exclude => exclude } query << Token.new(options) end end
extract_text_query_tokens(query_string, query)
click to toggle source
# File lib/dusen/parser.rb, line 17 def self.extract_text_query_tokens(query_string, query) while query_string.sub!(TEXT_QUERY, '') value = "#{$2}#{$4}" exclude = "#{$1}#{$3}" == "-" options = { :field => 'text', :value => value, :exclude => exclude } query << Token.new(options) end end
parse(query_string)
click to toggle source
# File lib/dusen/parser.rb, line 9 def self.parse(query_string) query_string = query_string.dup # we are going to delete substrings in-place query = Query.new extract_field_query_tokens(query_string, query) extract_text_query_tokens(query_string, query) query end