module EnumHelp::SimpleForm::InputExtension

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/enum_help/simple_form.rb, line 31
def initialize(*args)
  super
  enum = input_options[:collection] || @builder.options[:collection]
  raise "Attribute '#{attribute_name}' has no enum class" unless enum ||= object.class.send(attribute_name.to_s.pluralize)

  enum = enum.keys if enum.is_a? Hash

  collect = begin
    collection = object.class.send("#{attribute_name.to_s.pluralize}_i18n")
    collection.slice!(*enum) if enum
    collection.invert.to_a
  end

  # collect.unshift [args.last[:prompt],''] if args.last.is_a?(Hash) && args.last[:prompt]

  if respond_to?(:input_options)
    input_options[:collection] = collect
  else
    @builder.options[:collection] = collect
  end
end