Class: Nelson::Expression
- Inherits:
-
Object
- Object
- Nelson::Expression
- Defined in:
- lib/nelson/expression.rb
Direct Known Subclasses
AdditionExpression, MultipicationExpression, SubtractionExpression
Instance Attribute Summary collapse
-
#terms ⇒ Object
Returns the value of attribute terms.
Instance Method Summary collapse
- #*(term) ⇒ Object
- #+(term) ⇒ Object
- #-(term) ⇒ Object
-
#initialize(*terms) ⇒ Expression
constructor
A new instance of Expression.
Constructor Details
#initialize(*terms) ⇒ Expression
Returns a new instance of Expression.
6 7 8 9 |
# File 'lib/nelson/expression.rb', line 6 def initialize(*terms) raise ArgumentError, "At least 1 term must be specified" unless terms.length > 0 @terms = terms end |
Instance Attribute Details
#terms ⇒ Object
Returns the value of attribute terms.
4 5 6 |
# File 'lib/nelson/expression.rb', line 4 def terms @terms end |
Instance Method Details
#*(term) ⇒ Object
11 12 13 14 15 |
# File 'lib/nelson/expression.rb', line 11 def *(term) rhs_value = self.call lhs_value = try_to_eval term MultipicationExpression.new(rhs_value, lhs_value).call end |
#+(term) ⇒ Object
17 18 19 20 21 |
# File 'lib/nelson/expression.rb', line 17 def +(term) rhs_value = self.call lhs_value = try_to_eval term AdditionExpression.new(rhs_value, lhs_value).call end |
#-(term) ⇒ Object
23 24 25 26 27 |
# File 'lib/nelson/expression.rb', line 23 def -(term) rhs_value = self.call lhs_value = try_to_eval term SubtractionExpression.new(rhs_value, lhs_value).call end |