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.
6 7 8 9 10 |
# File 'lib/arel/nodes/window.rb', line 6 def initialize @orders = [] @partitions = [] @framing = nil end |
Instance Attribute Details
#framing ⇒ Object
Returns the value of attribute framing.
4 5 6 |
# File 'lib/arel/nodes/window.rb', line 4 def framing @framing end |
#orders ⇒ Object
Returns the value of attribute orders.
4 5 6 |
# File 'lib/arel/nodes/window.rb', line 4 def orders @orders end |
#partitions ⇒ Object
Returns the value of attribute partitions.
4 5 6 |
# File 'lib/arel/nodes/window.rb', line 4 def partitions @partitions end |
Instance Method Details
#eql?(other) ⇒ Boolean Also known as: ==
57 58 59 60 61 62 |
# File 'lib/arel/nodes/window.rb', line 57 def eql? other self.class == other.class && self.orders == other.orders && self.framing == other.framing && self.partitions == other.partitions end |
#frame(expr) ⇒ Object
28 29 30 |
# File 'lib/arel/nodes/window.rb', line 28 def frame(expr) @framing = expr end |
#hash ⇒ Object
53 54 55 |
# File 'lib/arel/nodes/window.rb', line 53 def hash [@orders, @framing].hash end |
#initialize_copy(other) ⇒ Object
48 49 50 51 |
# File 'lib/arel/nodes/window.rb', line 48 def initialize_copy other super @orders = @orders.map { |x| x.clone } end |
#order(*expr) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/arel/nodes/window.rb', line 12 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
20 21 22 23 24 25 26 |
# File 'lib/arel/nodes/window.rb', line 20 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 |