The StringAgg
class represents an aggregate string concatentation.
Included modules
- StringMethods
- StringConcatenationMethods
- InequalityMethods
- AliasMethods
- CastMethods
- OrderMethods
- PatternMatchMethods
- SubscriptMethods
Classes and Modules
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)
Set the expression and separator
[show source]
# File lib/sequel/extensions/string_agg.rb 161 def initialize(expr, separator=nil) 162 @expr = expr 163 @separator = separator 164 yield self if defined?(yield) 165 freeze 166 end
Public Instance methods
distinct()
Return a modified StringAgg
that uses distinct expressions
[show source]
# File lib/sequel/extensions/string_agg.rb 174 def distinct 175 self.class.new(@expr, @separator) do |sa| 176 sa.instance_variable_set(:@order_expr, @order_expr) if @order_expr 177 sa.instance_variable_set(:@distinct, true) 178 end 179 end
is_distinct?()
Whether the current expression uses distinct expressions
[show source]
# File lib/sequel/extensions/string_agg.rb 169 def is_distinct? 170 @distinct == true 171 end
order(*o)
Return a modified StringAgg
with the given order
[show source]
# File lib/sequel/extensions/string_agg.rb 182 def order(*o) 183 self.class.new(@expr, @separator) do |sa| 184 sa.instance_variable_set(:@distinct, @distinct) if @distinct 185 sa.instance_variable_set(:@order_expr, o.empty? ? nil : o.freeze) 186 end 187 end