class Lolita::Configuration::Columns
Attributes
dbi[R]
parent[RW]
Public Class Methods
new(dbi, *args, &block)
click to toggle source
# File lib/lolita/configuration/columns.rb, line 12 def initialize(dbi, *args, &block) @dbi=dbi @columns=[] @generated_yet = (block_given? || (args && args.any?)) set_attributes(*args) self.instance_eval(&block) if block_given? end
Public Instance Methods
by_name(name)
click to toggle source
Find first column by name
# File lib/lolita/configuration/columns.rb, line 27 def by_name(name) name = name.to_sym self.detect do |column| column.name == name end end
column(*args, &block)
click to toggle source
Add column to columns Array. Receive attributes for column as Hash and/or block.
# File lib/lolita/configuration/columns.rb, line 21 def column *args, &block @columns << build_element(*args,&block) @columns.last end
each() { |column| ... }
click to toggle source
# File lib/lolita/configuration/columns.rb, line 34 def each self.populate @columns.each_with_index{|column,index| if column.is_a?(Lolita::Configuration::Column) yield column else raise "Any column must be Lolita::Configuratin::Column object instead of #{column.class}." end } end
generate!()
click to toggle source
# File lib/lolita/configuration/columns.rb, line 46 def generate! @generated_yet = true @columns.clear @dbi.fields.each_with_index{|field,index| unless field.technical? column(field) end } end
populate()
click to toggle source
# File lib/lolita/configuration/columns.rb, line 56 def populate self.generate! if @columns.empty? && !@generated_yet end
Private Instance Methods
build_element(*column,&block)
click to toggle source
# File lib/lolita/configuration/columns.rb, line 84 def build_element(*column,&block) if column[0].is_a?(Lolita::Configuration::Column) column[0] elsif column[0].is_a?(Proc) Lolita::Configuration::Column.new(@dbi,&column[0]) else Lolita::Configuration::Column.new(@dbi,*column, &block) end end
collection_variable()
click to toggle source
# File lib/lolita/configuration/columns.rb, line 80 def collection_variable @columns end
generate_collection_elements!()
click to toggle source
# File lib/lolita/configuration/columns.rb, line 76 def generate_collection_elements! self.populate end
set_attributes(*args)
click to toggle source
# File lib/lolita/configuration/columns.rb, line 62 def set_attributes(*args) if args && args.any? options = args.extract_options! || {} args.each do |col_name| column col_name end options.each do |key,value| if key == :column column value end end end end