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 7 |
# File 'lib/minidusen/syntax.rb', line 4 def initialize @scopers = {} @alias_count = 0 end |
Instance Method Details
#fields ⇒ Object
24 25 26 |
# File 'lib/minidusen/syntax.rb', line 24 def fields @scopers end |
#learn_field(field, &scoper) ⇒ Object
9 10 11 12 |
# File 'lib/minidusen/syntax.rb', line 9 def learn_field(field, &scoper) field = field.to_s @scopers[field] = scoper end |
#parse(query) ⇒ Object
28 29 30 |
# File 'lib/minidusen/syntax.rb', line 28 def parse(query) Parser.parse(query) end |
#search(instance, root_scope, query) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/minidusen/syntax.rb', line 14 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 |