class Formize::Definition::Form
Represents an environment for a form or list of fields of one Record
Attributes
elements[R]
id[R]
model[R]
name[R]
options[R]
record_name[R]
unique_name[R]
Public Class Methods
new(name, model, options={})
click to toggle source
# File lib/formize/definition/form.rb, line 11 def initialize(name, model, options={}) @name = name @model = model @options = options @elements = [] @@count += 1 @id = @@count.to_s(36) @unique_name = @options.delete(:unique_name) unless @options[:unique_name].blank? @unique_name ||= "_formize#{@id}" @record_name = @model.name.underscore @elements_count = 0 end
Public Instance Methods
action_name()
click to toggle source
# File lib/formize/definition/form.rb, line 60 def action_name @options[:action_name] || :formize end
all_elements()
click to toggle source
# File lib/formize/definition/form.rb, line 76 def all_elements return elements.collect{|e| e.all_elements}.flatten end
all_fields()
click to toggle source
# File lib/formize/definition/form.rb, line 68 def all_fields return elements.inject(HashWithIndifferentAccess.new){|h, e| h.merge!(e.all_fields)} end
controller_method_name()
click to toggle source
protected
# File lib/formize/definition/form.rb, line 52 def controller_method_name @options[:controller_method_name] || "formize_#{model.underscore}" end
dependents()
click to toggle source
# File lib/formize/definition/form.rb, line 72 def dependents return elements.collect{|e| e.dependents}.flatten end
dependents_on(element)
click to toggle source
# File lib/formize/definition/form.rb, line 80 def dependents_on(element) return elements.collect{|e| e.dependents_on(element)}.flatten end
field(name, options={})
click to toggle source
# File lib/formize/definition/form.rb, line 37 def field(name, options={}) return new_element(Field, name, options) end
field_set(name=nil, options={}) { |field_set| ... }
click to toggle source
# File lib/formize/definition/form.rb, line 24 def field_set(name=nil, options={}, &block) raise ArgumentError.new("Missing block") unless block_given? field_set = new_element(FieldSet, name, options) yield field_set end
fields(*args)
click to toggle source
# File lib/formize/definition/form.rb, line 41 def fields(*args) options = {} options = args.delete_at(-1) if args[-1].is_a?(Hash) for name in args new_element(Field, name, options) end end
group(name, options={}) { |group| ... }
click to toggle source
# File lib/formize/definition/form.rb, line 30 def group(name, options={}, &block) raise ArgumentError.new("Missing block") unless block_given? name, options = nil, name if name.is_a? Hash group = new_element(Group, name, options) yield group end
mono_choices()
click to toggle source
# File lib/formize/definition/form.rb, line 64 def mono_choices return elements.collect{|e| e.mono_choices}.flatten end
shown_if(element)
click to toggle source
# File lib/formize/definition/form.rb, line 84 def shown_if(element) return elements.collect{|e| e.shown_if(element)}.flatten end
view_method_name()
click to toggle source
# File lib/formize/definition/form.rb, line 56 def view_method_name @options[:method_name] || "_form_#{model.underscore}" end
Private Instance Methods
new_element(klass, *args)
click to toggle source
# File lib/formize/definition/form.rb, line 100 def new_element(klass, *args) raise ArgumentError.new("Bad child type: #{klass.name} (#{klass.ancestors.inspect}). Must be an Formize::Definition::FormElement") unless klass < Formize::Definition::FormElement # klass.ancestors.include? Formize::FormElement element = klass.new(self, nil, *args) @elements << element return element end
new_id()
click to toggle source
# File lib/formize/definition/form.rb, line 95 def new_id @elements_count += 1 return @elements_count.to_s(36) end