Class: Minidusen::Syntax

Inherits:
Object
  • Object
show all
Defined in:
lib/minidusen/syntax.rb

Instance Method Summary collapse

Constructor Details

#initializeSyntax

Returns a new instance of Syntax.



4
5
6
# File 'lib/minidusen/syntax.rb', line 4

def initialize
  @scopers = {}
end

Instance Method Details

#fieldsObject



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