module Enumerize::Hooks::SimpleFormBuilderExtension

Public Instance Methods

input(attribute_name, options={}, &block) click to toggle source
Calls superclass method
# File lib/enumerize/hooks/simple_form.rb, line 9
def input(attribute_name, options={}, &block)
  add_input_options_for_enumerized_attribute(attribute_name, options)
  super(attribute_name, options, &block)
end
input_field(attribute_name, options={}) click to toggle source
Calls superclass method
# File lib/enumerize/hooks/simple_form.rb, line 14
def input_field(attribute_name, options={})
  add_input_options_for_enumerized_attribute(attribute_name, options)
  super(attribute_name, options)
end

Private Instance Methods

add_input_options_for_enumerized_attribute(attribute_name, options) click to toggle source
# File lib/enumerize/hooks/simple_form.rb, line 21
def add_input_options_for_enumerized_attribute(attribute_name, options)
  enumerized_object = convert_to_model(object)
  klass = enumerized_object.class

  if klass.respond_to?(:enumerized_attributes) && (attr = klass.enumerized_attributes[attribute_name])
    options[:collection] ||= attr.options

    if attr.kind_of?(Enumerize::Multiple) && options[:as] != :check_boxes
      options[:input_html] = options.fetch(:input_html, {}).merge(:multiple => true)
    end
  end
end