class Formize::Generator::Column
Attributes
column[R]
filter[R]
interpolation_key[R]
name[R]
Public Class Methods
new(model, name, options={})
click to toggle source
@@count = 0
# File lib/formize/generator.rb, line 9 def initialize(model, name, options={}) @model = model @name = name.to_s @filter = options.delete(:filter) || "%X%" @code = options.delete(:code) @interpolation_key = options.delete(:interpolation_key) || @name.gsub(/\W/, '_') klass = @model @through = (options.delete(:through) || []).collect do |reflection| unless klass.reflections[reflection.to_sym] raise Exception.new("Model #{klass.name} has no reflections #{reflection.inspect}") end klass = klass.reflections[reflection.to_sym].class_name.constantize reflection.to_sym end || [] @column = foreign_model.columns_hash[@name] end
Public Instance Methods
foreign_model()
click to toggle source
# File lib/formize/generator.rb, line 52 def foreign_model model = @model for reflection in @through model = model.reflections[reflection].class_name.constantize end return model end
sql_name()
click to toggle source
# File lib/formize/generator.rb, line 26 def sql_name return "#{foreign_model.table_name}.#{@name}" end
type()
click to toggle source
# File lib/formize/generator.rb, line 48 def type @column.type end
value_code(record='record')
click to toggle source
# File lib/formize/generator.rb, line 30 def value_code(record='record') code = "(" value = "(#{record}#{'.'+@through.join('.') unless @through.empty?}.#{name})" @through.each_index do |i| code << "#{record}.#{@through[0..i].join('.')}.nil? ? '' : " end code << if @code @code.gsub(/RECORD/, record).gsub(/DATUM/, value) elsif[:date, :datetime, :timestamp].include? self.type "(#{value}.nil? ? '' : ::I18n.localize(#{value}))" else value end code << ")" code << ".to_s" unless name.to_s == "count" return code end