class Sequel::SQL::StringAgg
The StringAgg
class represents an aggregate string concatentation.
Attributes
expr[R]
The string expression for each row that will concatenated to the output.
order_expr[R]
The expression that the aggregation is ordered by.
separator[R]
The separator between each string expression.
Public Class Methods
new(expr, separator=nil) { |self| ... }
click to toggle source
Set the expression and separator
# File lib/sequel/extensions/string_agg.rb 147 def initialize(expr, separator=nil) 148 @expr = expr 149 @separator = separator 150 yield self if block_given? 151 freeze 152 end
Public Instance Methods
distinct()
click to toggle source
Return a modified StringAgg
that uses distinct expressions
# File lib/sequel/extensions/string_agg.rb 160 def distinct 161 self.class.new(@expr, @separator) do |sa| 162 sa.instance_variable_set(:@order_expr, @order_expr) if @order_expr 163 sa.instance_variable_set(:@distinct, true) 164 end 165 end
is_distinct?()
click to toggle source
Whether the current expression uses distinct expressions
# File lib/sequel/extensions/string_agg.rb 155 def is_distinct? 156 @distinct == true 157 end
order(*o)
click to toggle source
Return a modified StringAgg
with the given order
# File lib/sequel/extensions/string_agg.rb 168 def order(*o) 169 self.class.new(@expr, @separator) do |sa| 170 sa.instance_variable_set(:@distinct, @distinct) if @distinct 171 sa.instance_variable_set(:@order_expr, o.empty? ? nil : o.freeze) 172 end 173 end