Class: ActiveEnumeration::Base

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.allObject



21
22
23
# File 'lib/active_enumeration/base.rb', line 21

def self.all
  @active_enumeration_values.keys.map { |id| self.find(id) }
end

.countObject



25
26
27
# File 'lib/active_enumeration/base.rb', line 25

def self.count
  @active_enumeration_values.count
end

.find(id) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/active_enumeration/base.rb', line 6

def self.find(id)
  id = id.to_i
  @instances ||= {}
  unless @instances[id] || !@active_enumeration_values[id]
    @instances[id] = self.new *@active_enumeration_values[id]
  end
  @instances[id]
end

.to_aObject



29
30
31
# File 'lib/active_enumeration/base.rb', line 29

def self.to_a
  all.map { |e| [e.to_s, e.instance_variable_get("@active_enumeration_id")] }
end

.where(filters) ⇒ Object



15
16
17
18
19
# File 'lib/active_enumeration/base.rb', line 15

def self.where(filters)
  self.all.select do |enum|
    filters.keys.all? { |k| enum.send(k) == filters[k] }
  end
end

Instance Method Details

#symbolObject



33
34
35
# File 'lib/active_enumeration/base.rb', line 33

def symbol
  self.instance_variable_get("@symbol")
end