Class: Anyway::Loaders::Registry
- Inherits:
-
Object
- Object
- Anyway::Loaders::Registry
- Defined in:
- lib/anyway/loaders.rb
Instance Attribute Summary collapse
-
#registry ⇒ Object
readonly
Returns the value of attribute registry.
Instance Method Summary collapse
- #append(id, handler = nil, &block) ⇒ Object
- #delete(id) ⇒ Object
- #each(&block) ⇒ Object
- #freeze ⇒ Object
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #insert_after(another_id, id, handler = nil, &block) ⇒ Object
- #insert_before(another_id, id, handler = nil, &block) ⇒ Object
- #override(id, handler) ⇒ Object
- #prepend(id, handler = nil, &block) ⇒ Object
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
10 11 12 |
# File 'lib/anyway/loaders.rb', line 10 def initialize @registry = [] end |
Instance Attribute Details
#registry ⇒ Object (readonly)
Returns the value of attribute registry.
8 9 10 |
# File 'lib/anyway/loaders.rb', line 8 def registry @registry end |
Instance Method Details
#append(id, handler = nil, &block) ⇒ Object
19 20 21 22 |
# File 'lib/anyway/loaders.rb', line 19 def append(id, handler = nil, &block) handler ||= block insert_at(registry.size, id, handler) end |
#delete(id) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/anyway/loaders.rb', line 47 def delete(id) find(id).then do |id_to_handler| raise ArgumentError, "Loader with ID #{id} hasn't been registered" if id_to_handler.nil? registry.delete id_to_handler end end |
#each(&block) ⇒ Object
54 55 56 |
# File 'lib/anyway/loaders.rb', line 54 def each(&block) registry.each(&block) end |
#freeze ⇒ Object
58 |
# File 'lib/anyway/loaders.rb', line 58 def freeze() = registry.freeze |
#insert_after(another_id, id, handler = nil, &block) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/anyway/loaders.rb', line 32 def insert_after(another_id, id, handler = nil, &block) ind = registry.find_index { |(hid, _)| hid == another_id } raise ArgumentError, "Loader with ID #{another_id} hasn't been registered" if ind.nil? handler ||= block insert_at(ind + 1, id, handler) end |
#insert_before(another_id, id, handler = nil, &block) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/anyway/loaders.rb', line 24 def insert_before(another_id, id, handler = nil, &block) ind = registry.find_index { |(hid, _)| hid == another_id } raise ArgumentError, "Loader with ID #{another_id} hasn't been registered" if ind.nil? handler ||= block insert_at(ind, id, handler) end |
#override(id, handler) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/anyway/loaders.rb', line 40 def override(id, handler) find(id).then do |id_to_handler| raise ArgumentError, "Loader with ID #{id} hasn't been registered" if id_to_handler.nil? id_to_handler[1] = handler end end |
#prepend(id, handler = nil, &block) ⇒ Object
14 15 16 17 |
# File 'lib/anyway/loaders.rb', line 14 def prepend(id, handler = nil, &block) handler ||= block insert_at(0, id, handler) end |