Class: YADM::CriteriaParser::ExpressionParser::Expression

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(receiver, method_name, arguments) ⇒ Expression

Returns a new instance of Expression.



37
38
39
40
41
# File 'lib/yadm/criteria_parser/expression_parser.rb', line 37

def initialize(receiver, method_name, arguments)
  @receiver    = receiver
  @method_name = method_name
  @arguments   = arguments
end

Instance Attribute Details

#argumentsObject (readonly)

Returns the value of attribute arguments.



35
36
37
# File 'lib/yadm/criteria_parser/expression_parser.rb', line 35

def arguments
  @arguments
end

#method_nameObject (readonly)

Returns the value of attribute method_name.



35
36
37
# File 'lib/yadm/criteria_parser/expression_parser.rb', line 35

def method_name
  @method_name
end

#receiverObject (readonly)

Returns the value of attribute receiver.



35
36
37
# File 'lib/yadm/criteria_parser/expression_parser.rb', line 35

def receiver
  @receiver
end

Instance Method Details

#arguments_resultObject



51
52
53
54
55
56
57
58
59
# File 'lib/yadm/criteria_parser/expression_parser.rb', line 51

def arguments_result
  arguments.map do |argument|
    if argument.respond_to?(:result)
      argument.result
    else
      argument
    end
  end
end

#resultObject



43
44
45
46
47
48
49
# File 'lib/yadm/criteria_parser/expression_parser.rb', line 43

def result
  Criteria::Expression.new(
    receiver.result,
    method_name,
    arguments_result
  )
end