Method: Formidable::Elements::ElementList.register

Defined in:
lib/formidable/elements.rb

.register(klass, method_name) ⇒ Object

We had a few beers and we decided that this is pretty cool :) This will define DSL method for creating email_field

Examples:

Formidable::ElementList.register self, :email_field



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/formidable/elements.rb', line 38

def self.register(klass, method_name)
  define_method(method_name) do |*args, &block|
    element = klass.new(*args, &block)
    elements << element
    unless element.name.nil?
      if self.class.method_defined?(element.name)
        warn "Overriding method #{element.name}"
      end
      self.class.send(:define_method, element.name) do
        element
      end
    end
    element
  end
end