Method: Formular::Builder.define_element_method

Defined in:
lib/formular/builder.rb

.define_element_method(element_name, element_class) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/formular/builder.rb', line 19

def self.define_element_method(element_name, element_class)
  define_method(element_name) do |*args, &block|
    if args.size > 1
      name, options = args
    else
      case args.first
      when Symbol then name = args.first
      when Hash then options = args.first
      end
    end

    options ||= {}
    options[:builder] = self
    options[:attribute_name] = name if name

    element_class.(options, &block)
  end
end