# File lib/arel/nodes/window.rb, line 19 def frame(expr) raise ArgumentError, "Window frame cannot be set more than once" if @frame @framing = expr end
# File lib/arel/nodes/window.rb, line 32 def initialize_copy other super @orders = @orders.map { |x| x.clone } end
# File lib/arel/nodes/window.rb, line 11 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
# File lib/arel/nodes/window.rb, line 28 def range(expr = nil) frame(Range.new(expr)) end
# File lib/arel/nodes/window.rb, line 24 def rows(expr = nil) frame(Rows.new(expr)) end
# File lib/arel/nodes/window.rb, line 7 def initialize @orders = [] end