class AlgebraDB::Build::SelectList
Build
up a select list.
Public Class Methods
new(*selects)
click to toggle source
Calls superclass method
# File lib/algebra_db/build/select_list.rb, line 6 def initialize(*selects) super(selects.flat_map { |i| convert_select_item(i) }) items.each do |i| same_name = items.select { |i2| i2.select_alias == i.select_alias } raise ArgumentError, "duplicate key #{i.select_alias}" if same_name.count > 1 end end
Public Instance Methods
render_syntax(builder)
click to toggle source
# File lib/algebra_db/build/select_list.rb, line 16 def render_syntax(builder) builder.separate(items) do |i, b| i.render_syntax(b) end end
row_decoder()
click to toggle source
# File lib/algebra_db/build/select_list.rb, line 49 def row_decoder RowDecoder.new(items) end
Private Instance Methods
convert_select_item(item)
click to toggle source
# File lib/algebra_db/build/select_list.rb, line 55 def convert_select_item(item) if item.respond_to?(:to_select_item) item.to_select_item else item.map { |k, v| SelectItem.new(v, k) } end end