Module: EnumHelp::SimpleForm::InputExtension

Included in:
EnumInput, EnumRadioButtons
Defined in:
lib/enum_help/simple_form.rb

Instance Method Summary collapse

Instance Method Details

#initialize(*args) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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