Class: Adva::Registry
- Inherits:
-
Hash
- Object
- Hash
- Adva::Registry
- Defined in:
- lib/adva/registry.rb
Class Method Summary collapse
Instance Method Summary collapse
- #get(*keys) ⇒ Object
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #set(*args) ⇒ Object
Constructor Details
Class Method Details
.clear ⇒ Object
18 19 20 |
# File 'lib/adva/registry.rb', line 18 def clear instance.clear end |
.get(*args) ⇒ Object
10 11 12 |
# File 'lib/adva/registry.rb', line 10 def get(*args) instance.get(*args) end |
.instance ⇒ Object
6 7 8 |
# File 'lib/adva/registry.rb', line 6 def instance @@instance ||= new end |
.set(*args) ⇒ Object
14 15 16 |
# File 'lib/adva/registry.rb', line 14 def set(*args) instance.set(*args) end |
Instance Method Details
#get(*keys) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/adva/registry.rb', line 42 def get(*keys) keys.map { |key| key.to_sym }.inject(self) do |result, key| return nil unless result.has_key?(key) result[key] end end |
#set(*args) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/adva/registry.rb', line 27 def set(*args) value, last_key = args.pop, args.pop.to_sym target = args.inject(self) { |result, key| result[key.to_sym] } case value when Hash target[last_key].merge!(to_registry(value)) when Array target[last_key] = Array(target[last_key]) unless target[last_key].is_a?(Array) target[last_key] += value else target.merge!(last_key => value) end end |