class Formular::Builder
Attributes
elements[R]
Public Class Methods
define_element_method(element_name, element_class)
click to toggle source
# 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
define_element_methods(**elements)
click to toggle source
# File lib/formular/builder.rb, line 15 def self.define_element_methods(**elements) elements.each { |k, v| define_element_method(k, v) } end
element_set(**elements)
click to toggle source
# File lib/formular/builder.rb, line 10 def self.element_set(**elements) self.elements.merge!(elements) define_element_methods(self.elements) end
new(**elements)
click to toggle source
# File lib/formular/builder.rb, line 38 def initialize(**elements) @elements = self.class.elements.merge(elements) self.class.define_element_methods(elements) if elements end
Public Instance Methods
call(&block)
click to toggle source
# File lib/formular/builder.rb, line 48 def call(&block) capture(self, &block) end
capture(*args) { |*args| ... }
click to toggle source
# File lib/formular/builder.rb, line 44 def capture(*args) yield(*args) end