Class: YADM::CriteriaParser

Inherits:
Object
  • Object
show all
Defined in:
lib/yadm/criteria_parser.rb,
lib/yadm/criteria_parser/expression_parser.rb

Defined Under Namespace

Classes: Criteria, ExpressionParser

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(block) ⇒ CriteriaParser

Returns a new instance of CriteriaParser.



7
8
9
# File 'lib/yadm/criteria_parser.rb', line 7

def initialize(block)
  @block = block
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



5
6
7
# File 'lib/yadm/criteria_parser.rb', line 5

def block
  @block
end

Class Method Details

.parse(block, arguments_group) ⇒ Object



26
27
28
# File 'lib/yadm/criteria_parser.rb', line 26

def parse(block, arguments_group)
  new(block).result(arguments_group)
end

Instance Method Details

#result(arguments_group) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/yadm/criteria_parser.rb', line 11

def result(arguments_group)
  arguments = block.arity.times.map do |index|
    YADM::Criteria::Argument.new(arguments_group, index)
  end
  
  instance_exec(*arguments, &block).result
end