1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/lib/arel/nodes.rb
Shahbaz Javeed c22abda79b * Support for bitwise operations as infix operators. Tests included.
*** Individual commit messages included below ***
* Preliminary support for bitwise operations as infix operators.  Tests to follow.

* Added bitwise xor, shift left and shift right operators

* Fixed the BitwiseOr class so it uses the :| operator instead of :&
* All the methods for the bitwise operators in the Arel::Math module now wrap them up in Arel::Nodes::Grouping so the operation becomes isolated like addition and subtraction
* Preliminary set of tests for the new operators

* Updated README with examples of bitwise operations

* Added a new UnaryOperation class which is a riff on the InfixOperation class
* Added tests for UnaryOperation (inspired by InfixOperation tests)
* Added the bitwise not (~) operator as a UnaryOperation
* Added tests for the bitwise not operator

* Added documentation for the bitwise not operator

* Updated gemspec using `rake arel.gemspec`
2016-01-06 11:18:42 -05:00

63 lines
1.5 KiB
Ruby

# node
require 'arel/nodes/node'
require 'arel/nodes/select_statement'
require 'arel/nodes/select_core'
require 'arel/nodes/insert_statement'
require 'arel/nodes/update_statement'
require 'arel/nodes/bind_param'
# terminal
require 'arel/nodes/terminal'
require 'arel/nodes/true'
require 'arel/nodes/false'
# unary
require 'arel/nodes/unary'
require 'arel/nodes/grouping'
require 'arel/nodes/ascending'
require 'arel/nodes/descending'
require 'arel/nodes/unqualified_column'
require 'arel/nodes/with'
# binary
require 'arel/nodes/binary'
require 'arel/nodes/equality'
require 'arel/nodes/in' # Why is this subclassed from equality?
require 'arel/nodes/join_source'
require 'arel/nodes/delete_statement'
require 'arel/nodes/table_alias'
require 'arel/nodes/infix_operation'
require 'arel/nodes/unary_operation'
require 'arel/nodes/over'
require 'arel/nodes/matches'
require 'arel/nodes/regexp'
# nary
require 'arel/nodes/and'
# function
# FIXME: Function + Alias can be rewritten as a Function and Alias node.
# We should make Function a Unary node and deprecate the use of "aliaz"
require 'arel/nodes/function'
require 'arel/nodes/count'
require 'arel/nodes/extract'
require 'arel/nodes/values'
require 'arel/nodes/named_function'
# windows
require 'arel/nodes/window'
# conditional expressions
require 'arel/nodes/case'
# joins
require 'arel/nodes/full_outer_join'
require 'arel/nodes/inner_join'
require 'arel/nodes/outer_join'
require 'arel/nodes/right_outer_join'
require 'arel/nodes/string_join'
require 'arel/nodes/sql_literal'
require 'arel/nodes/casted'