Class: Identitee::Identifiables

Inherits:
Object
  • Object
show all
Defined in:
lib/identitee/identifiables.rb

Instance Method Summary collapse

Constructor Details

#initializeIdentifiables

Returns a new instance of Identifiables.



5
6
7
# File 'lib/identitee/identifiables.rb', line 5

def initialize 
  @instances = {}
end

Instance Method Details

#allObject



29
30
31
# File 'lib/identitee/identifiables.rb', line 29

def all
  instances.values
end

#find(key, *default_values, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/identitee/identifiables.rb', line 13

def find key, *default_values, &block
  instances.fetch key.to_s do 
    if block
      block.call key
    elsif default_values.length > 0
      default_values.first
    else
      raise ::Identitee::IdentifiableNotFound
    end
  end
end

#find_key(instance) ⇒ Object



25
26
27
# File 'lib/identitee/identifiables.rb', line 25

def find_key instance
  instances.invert.fetch(instance, nil)
end

#register(key, instance) ⇒ Object



9
10
11
# File 'lib/identitee/identifiables.rb', line 9

def register key, instance
  instances[key.to_s] = instance
end