Module: RailsAttrEnum

Defined in:
lib/rails_attr_enum.rb,
lib/rails_attr_enum/attr.rb,
lib/rails_attr_enum/enum.rb,
lib/rails_attr_enum/entry.rb,
lib/rails_attr_enum/version.rb,
lib/rails_attr_enum/entry_value.rb,
lib/rails_attr_enum/enum_accumulator.rb

Defined Under Namespace

Modules: Enum Classes: Attr, Entry, EntryValue, EnumAccumulator

Constant Summary collapse

VERSION =
'0.2.0'

Instance Method Summary collapse

Instance Method Details

#attr_enum(attr_name, *keys, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rails_attr_enum.rb', line 10

def attr_enum(attr_name, *keys, &block)
  if block_given?
    add_attr_enum_through_block(attr_name, &block)
  else
    if keys.first.is_a?(Hash) && keys.first.size > 1
      add_attr_enum_through_block(attr_name) do
        keys.first.each { |k, v| add k => v }
      end
    else
      add_attr_enum_through_block(attr_name) do
        keys.each { |k| add k }
      end
    end
  end

  nil
end