class Lurker::FormBuilder

Public Class Methods

new(params) click to toggle source
# File lib/lurker/form_builder.rb, line 3
def initialize(params)
  @_buffer = ''
  add_to_buffer(params)
end

Public Instance Methods

html() click to toggle source
# File lib/lurker/form_builder.rb, line 8
def html
  @_buffer
end

Private Instance Methods

add_element_to_buffer(accessors, value) click to toggle source
# File lib/lurker/form_builder.rb, line 34
def add_element_to_buffer(accessors, value)
  @_buffer += render(
    :partial => 'param_form_element',
    :locals => {
      :accessor => "#{accessors.compact.join('.')}",
      :label => "#{print_labels(accessors)}",
      :label_text => "#{print_labels(accessors)}",
      :value => value
    }
  )
end
add_to_buffer(params, parent_accessors = []) click to toggle source
# File lib/lurker/form_builder.rb, line 14
def add_to_buffer(params, parent_accessors = [])
  params.each do |name, value|

    accessors = parent_accessors.clone << name
    if value.is_a?(Hash)
      add_to_buffer(value, accessors)
    elsif value.is_a?(Array)
      value.each_with_index do |v, i|
        if v.is_a?(Hash)
          add_to_buffer(v, accessors << i)
        else
          add_element_to_buffer(accessors, v)
        end
      end
    else
      add_element_to_buffer(accessors, value)
    end
  end
end
print_labels(accessors) click to toggle source