Class: Dusen::Parser
- Inherits:
-
Object
- Object
- Dusen::Parser
- Defined in:
- lib/dusen/parser.rb
Constant Summary collapse
- WESTERNISH_WORD_CHARACTER =
this is wrong on so many levels
'\\w\\-\\.;@_ÄÖÜäöüß'
- TEXT_QUERY =
/(?:"([^"]+)"|([#{WESTERNISH_WORD_CHARACTER}]+))/
- FIELD_QUERY =
/(\w+)\:#{TEXT_QUERY}/
Class Method Summary collapse
- .extract_field_query_tokens(query_string, query) ⇒ Object
- .extract_text_query_tokens(query_string, query) ⇒ Object
- .parse(query_string) ⇒ Object
Class Method Details
.extract_field_query_tokens(query_string, query) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/dusen/parser.rb', line 25 def self.extract_field_query_tokens(query_string, query) while query_string.sub!(FIELD_QUERY, '') field = $1 value = "#{$2}#{$3}" query << Token.new(field, value) end end |
.extract_text_query_tokens(query_string, query) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/dusen/parser.rb', line 18 def self.extract_text_query_tokens(query_string, query) while query_string.sub!(TEXT_QUERY, '') value = "#{$1}#{$2}" query << Token.new(value) end end |
.parse(query_string) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/dusen/parser.rb', line 10 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 |