Module: Tramway::Core::ExtendableFormsHelpers::MorePropertiesHelper

Defined in:
app/forms/tramway/core/extendable_forms_helpers/more_properties_helper.rb

Instance Method Summary collapse

Instance Method Details

#define_assignment_method(property) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'app/forms/tramway/core/extendable_forms_helpers/more_properties_helper.rb', line 10

def define_assignment_method(property)
  define_method "#{property[0]}=" do |value|
    if property[1][:validates].present?
      property[1][:validates].each do |pair|
        make_validates property[0], pair, value
      end
    else
      model.values.merge property[0] => value
    end
  end
end

#define_file_property_assignment_method(property, field) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'app/forms/tramway/core/extendable_forms_helpers/more_properties_helper.rb', line 22

def define_file_property_assignment_method(property, field)
  define_method "#{property[0]}=" do |value|
    file_instance = property[1][:association_model].find_or_create_by(
      "#{model.class.name.underscore}_id" => model.id, "#{field.class.name.underscore}_id" => field.id
    )
    file_instance.file = value
    file_instance.save!
  end
end

#define_property_method(property_name) ⇒ Object



4
5
6
7
8
# File 'app/forms/tramway/core/extendable_forms_helpers/more_properties_helper.rb', line 4

def define_property_method(property_name)
  define_method property_name do
    model.values[property_name] if model.values
  end
end