Sha256: 0dbf5739244e9a4e0f595e6821feb3b1017d6a7ba8ea7e2f7e100e9f99c6cd98

Contents?: true

Size: 499 Bytes

Versions: 3

Compression:

Stored size: 499 Bytes

Contents

class Tramway::Core::ExtendableForm
  class << self
    def new(name, *more_properties)
      Object.const_set(name, Class.new(::Tramway::Core::ApplicationForm) do
        more_properties.each do |property|

          define_method property do 
            model.values[property] if model.values
          end

          define_method "#{property}=" do |value|
            model.values ||= {}
            model.values.merge! property => value
          end

        end
      end)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tramway-core-1.2.1 app/forms/tramway/core/extendable_form.rb
tramway-core-1.2.0 app/forms/tramway/core/extendable_form.rb
tramway-core-1.1.0 app/forms/tramway/core/extendable_form.rb