Class: Dentaku::BinaryOperation
- Inherits:
-
Object
- Object
- Dentaku::BinaryOperation
- Defined in:
- lib/dentaku/binary_operation.rb
Instance Attribute Summary collapse
-
#left ⇒ Object
readonly
Returns the value of attribute left.
-
#right ⇒ Object
readonly
Returns the value of attribute right.
Instance Method Summary collapse
- #add ⇒ Object
- #and ⇒ Object
- #divide ⇒ Object
- #eq ⇒ Object
- #ge ⇒ Object
- #gt ⇒ Object
-
#initialize(left, right) ⇒ BinaryOperation
constructor
A new instance of BinaryOperation.
- #le ⇒ Object
- #lt ⇒ Object
- #mod ⇒ Object
- #multiply ⇒ Object
- #ne ⇒ Object
- #or ⇒ Object
- #pow ⇒ Object
- #subtract ⇒ Object
Constructor Details
#initialize(left, right) ⇒ BinaryOperation
Returns a new instance of BinaryOperation.
7 8 9 10 |
# File 'lib/dentaku/binary_operation.rb', line 7 def initialize(left, right) @left = left @right = right end |
Instance Attribute Details
#left ⇒ Object (readonly)
Returns the value of attribute left.
5 6 7 |
# File 'lib/dentaku/binary_operation.rb', line 5 def left @left end |
#right ⇒ Object (readonly)
Returns the value of attribute right.
5 6 7 |
# File 'lib/dentaku/binary_operation.rb', line 5 def right @right end |
Instance Method Details
#add ⇒ Object
13 |
# File 'lib/dentaku/binary_operation.rb', line 13 def add; [:numeric, left + right]; end |
#and ⇒ Object
32 |
# File 'lib/dentaku/binary_operation.rb', line 32 def and; [:logical, left && right]; end |
#divide ⇒ Object
17 18 19 20 21 |
# File 'lib/dentaku/binary_operation.rb', line 17 def divide quotient, remainder = left.divmod(right) return [:numeric, quotient] if remainder == 0 [:numeric, BigDecimal.new(left.to_s) / BigDecimal.new(right.to_s)] end |
#eq ⇒ Object
30 |
# File 'lib/dentaku/binary_operation.rb', line 30 def eq; [:logical, left == right]; end |
#ge ⇒ Object
26 |
# File 'lib/dentaku/binary_operation.rb', line 26 def ge; [:logical, left >= right]; end |
#gt ⇒ Object
28 |
# File 'lib/dentaku/binary_operation.rb', line 28 def gt; [:logical, left > right]; end |
#le ⇒ Object
25 |
# File 'lib/dentaku/binary_operation.rb', line 25 def le; [:logical, left <= right]; end |
#lt ⇒ Object
27 |
# File 'lib/dentaku/binary_operation.rb', line 27 def lt; [:logical, left < right]; end |
#mod ⇒ Object
23 |
# File 'lib/dentaku/binary_operation.rb', line 23 def mod; [:numeric, left % right]; end |
#multiply ⇒ Object
15 |
# File 'lib/dentaku/binary_operation.rb', line 15 def multiply; [:numeric, left * right]; end |
#ne ⇒ Object
29 |
# File 'lib/dentaku/binary_operation.rb', line 29 def ne; [:logical, left != right]; end |
#or ⇒ Object
33 |
# File 'lib/dentaku/binary_operation.rb', line 33 def or; [:logical, left || right]; end |
#pow ⇒ Object
12 |
# File 'lib/dentaku/binary_operation.rb', line 12 def pow; [:numeric, left ** right]; end |
#subtract ⇒ Object
14 |
# File 'lib/dentaku/binary_operation.rb', line 14 def subtract; [:numeric, left - right]; end |