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