Class: Arel::Nodes::Window
Direct Known Subclasses
Instance Attribute Summary collapse
-
#framing ⇒ Object
Returns the value of attribute framing.
-
#orders ⇒ Object
Returns the value of attribute orders.
-
#partitions ⇒ Object
Returns the value of attribute partitions.
Instance Method Summary collapse
- #eql?(other) ⇒ Boolean (also: #==)
- #frame(expr) ⇒ Object
- #hash ⇒ Object
-
#initialize ⇒ Window
constructor
A new instance of Window.
- #initialize_copy(other) ⇒ Object
- #order(*expr) ⇒ Object
- #partition(*expr) ⇒ Object
- #range(expr = nil) ⇒ Object
- #rows(expr = nil) ⇒ Object
Methods inherited from Node
#_caller, #and, #each, #not, #or, #to_sql
Methods included from FactoryMethods
#create_and, #create_false, #create_join, #create_on, #create_string_join, #create_table_alias, #create_true, #grouping, #lower
Constructor Details
#initialize ⇒ Window
Returns a new instance of Window.
7 8 9 10 11 |
# File 'lib/arel/nodes/window.rb', line 7 def initialize @orders = [] @partitions = [] @framing = nil end |
Instance Attribute Details
#framing ⇒ Object
Returns the value of attribute framing.
5 6 7 |
# File 'lib/arel/nodes/window.rb', line 5 def framing @framing end |
#orders ⇒ Object
Returns the value of attribute orders.
5 6 7 |
# File 'lib/arel/nodes/window.rb', line 5 def orders @orders end |
#partitions ⇒ Object
Returns the value of attribute partitions.
5 6 7 |
# File 'lib/arel/nodes/window.rb', line 5 def partitions @partitions end |
Instance Method Details
#eql?(other) ⇒ Boolean Also known as: ==
58 59 60 61 62 63 |
# File 'lib/arel/nodes/window.rb', line 58 def eql? other self.class == other.class && self.orders == other.orders && self.framing == other.framing && self.partitions == other.partitions end |
#frame(expr) ⇒ Object
29 30 31 |
# File 'lib/arel/nodes/window.rb', line 29 def frame(expr) @framing = expr end |
#hash ⇒ Object
54 55 56 |
# File 'lib/arel/nodes/window.rb', line 54 def hash [@orders, @framing].hash end |
#initialize_copy(other) ⇒ Object
49 50 51 52 |
# File 'lib/arel/nodes/window.rb', line 49 def initialize_copy other super @orders = @orders.map { |x| x.clone } end |
#order(*expr) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/arel/nodes/window.rb', line 13 def order *expr # FIXME: We SHOULD NOT be converting these to SqlLiteral automatically @orders.concat expr.map { |x| String === x || Symbol === x ? Nodes::SqlLiteral.new(x.to_s) : x } self end |
#partition(*expr) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/arel/nodes/window.rb', line 21 def partition *expr # FIXME: We SHOULD NOT be converting these to SqlLiteral automatically @partitions.concat expr.map { |x| String === x || Symbol === x ? Nodes::SqlLiteral.new(x.to_s) : x } self end |