lib/formulaic/form.rb in formulaic-0.0.6 vs lib/formulaic/form.rb in formulaic-0.1.0

- old
+ new

@@ -8,32 +8,34 @@ Array => Formulaic::Inputs::ArrayInput, String => Formulaic::Inputs::StringInput, Fixnum => Formulaic::Inputs::StringInput, TrueClass => Formulaic::Inputs::BooleanInput, FalseClass => Formulaic::Inputs::BooleanInput, + File => Formulaic::Inputs::FileInput, }.freeze - def initialize(model_name, attributes) + def initialize(model_name, action, attributes) + @action = action @inputs = build_inputs(model_name, attributes) - @session = session end def fill @inputs.each { |input| input.fill } end private - attr_reader :session, :model_name, :inputs + attr_reader :model_name, :inputs, :action def build_inputs(model_name, attributes) attributes.map do |field, value| build_input(model_name, field, value) end end def build_input(model_name, field, value) - input_class_for(value).new(model_name, field, value) + label = Label.new(model_name, field, action) + input_class_for(value).new(label, value) end def input_class_for(value) ATTRIBUTE_INPUT_MAP.fetch(value.class) do raise InvalidAttributeTypeError.new("Formulaic does not know how to fill in a #{value.class} value")