aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/nodes/infix_operation.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/nodes/infix_operation.rb')
-rw-r--r--lib/arel/nodes/infix_operation.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/arel/nodes/infix_operation.rb b/lib/arel/nodes/infix_operation.rb
new file mode 100644
index 0000000000..6847650fe4
--- /dev/null
+++ b/lib/arel/nodes/infix_operation.rb
@@ -0,0 +1,42 @@
+module Arel
+ module Nodes
+
+ class InfixOperation < Binary
+ include Arel::Expressions
+ include Arel::Predications
+ include Arel::Math
+
+ attr_reader :operator
+
+ def initialize operator, left, right
+ super(left, right)
+ @operator = operator
+ end
+ end
+
+ class Multiplication < InfixOperation
+ def initialize left, right
+ super(:*, left, right)
+ end
+ end
+
+ class Division < InfixOperation
+ def initialize left, right
+ super(:/, left, right)
+ end
+ end
+
+ class Addition < InfixOperation
+ def initialize left, right
+ super(:+, left, right)
+ end
+ end
+
+ class Subtraction < InfixOperation
+ def initialize left, right
+ super(:-, left, right)
+ end
+ end
+
+ end
+end \ No newline at end of file