class Qdsl::ColumnSet
Attributes
block[R]
columns[R]
Public Class Methods
new(columns, block)
click to toggle source
# File lib/column_set.rb, line 5 def initialize(columns, block) @columns = columns.collect { |x| Column[x] } @block = block end
Public Instance Methods
capture(source, join_sources)
click to toggle source
# File lib/column_set.rb, line 10 def capture(source, join_sources) sources = [source] + join_sources columns = @columns.collect { |x| x.with_source(source) } + if @block proxies = sources.collect { |x| ColumnProxy.new(x) } [*@block.call(Util::fix_block_params(proxies))] else [] end undefined_columns = columns.select { |x| !x.exists? } raise "One or more undefined columns: #{undefined_columns.collect(&:name).join(', ')}" unless undefined_columns.empty? columns end