Class: Minidusen::Syntax
- Inherits:
-
Object
- Object
- Minidusen::Syntax
- Defined in:
- lib/minidusen/syntax.rb
Instance Method Summary collapse
- #fields ⇒ Object
-
#initialize ⇒ Syntax
constructor
A new instance of Syntax.
- #learn_field(field, &scoper) ⇒ Object
- #parse(query) ⇒ Object
- #search(instance, root_scope, query) ⇒ Object
Constructor Details
#initialize ⇒ Syntax
Returns a new instance of Syntax.
4 5 6 |
# File 'lib/minidusen/syntax.rb', line 4 def initialize @scopers = {} end |
Instance Method Details
#fields ⇒ Object
23 24 25 |
# File 'lib/minidusen/syntax.rb', line 23 def fields @scopers end |
#learn_field(field, &scoper) ⇒ Object
8 9 10 11 |
# File 'lib/minidusen/syntax.rb', line 8 def learn_field(field, &scoper) field = field.to_s @scopers[field] = scoper end |
#parse(query) ⇒ Object
27 28 29 |
# File 'lib/minidusen/syntax.rb', line 27 def parse(query) Parser.parse(query) end |
#search(instance, root_scope, query) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/minidusen/syntax.rb', line 13 def search(instance, root_scope, query) query = parse(query) query = query.condensed matches = apply_query(instance, root_scope, query.include) if query.exclude.any? matches = append_excludes(instance, matches, query.exclude) end matches end |