Class: ActiveEnum::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/active_enum/base.rb

Class Method Summary collapse

Class Method Details

.[](index) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/active_enum/base.rb', line 47

def [](index)
  if index.is_a?(Fixnum)
    row = lookup_by_id(index)
    row[1] if row
  else
    row = lookup_by_name(index)
    row[0] if row
  end
end

.allObject



31
32
33
# File 'lib/active_enum/base.rb', line 31

def all
  @values || []
end

.idsObject



35
36
37
# File 'lib/active_enum/base.rb', line 35

def ids
  @values.map {|v| v[0] }
end

.inherited(subclass) ⇒ Object



8
9
10
# File 'lib/active_enum/base.rb', line 8

def inherited(subclass)
  ActiveEnum.enum_classes << subclass
end

.namesObject



39
40
41
# File 'lib/active_enum/base.rb', line 39

def names
  @values.map {|v| v[1] }
end

.order(order) ⇒ Object

order enum values using :asc or :desc



27
28
29
# File 'lib/active_enum/base.rb', line 27

def order(order)
	@order = order
end

.to_selectObject



43
44
45
# File 'lib/active_enum/base.rb', line 43

def to_select
				@values.map {|v| [v[1], v[0]] }
end

.value(enum_value = {}) ⇒ Object

:id => 1, :title => ‘Foo’ :title => ‘Foo’



15
16
17
18
19
20
21
22
23
# File 'lib/active_enum/base.rb', line 15

def value(enum_value={})
  @values ||= [] 

  id = enum_value[:id] || next_id
  check_duplicate(id, enum_value[:name])

  @values << [id, enum_value[:name]]
				sort_values!
end