Class: Kiba::Extend::Registry::FileRegistry
- Inherits:
-
Object
- Object
- Kiba::Extend::Registry::FileRegistry
- Includes:
- Dry::Container::Mixin
- Defined in:
- lib/kiba/extend/registry/file_registry.rb
Overview
Transforms a file_registry hash into an object that can return source, lookup, or destination config for that file, for passing to jobs
An example of a file registry setup in a project can be found at: https://github.com/lyrasis/fwm-cspace-migration/blob/main/lib/fwm/registry_data.rb
Defined Under Namespace
Classes: KeyNotRegisteredError
Instance Method Summary collapse
-
#as_destination(filekey, for_job) ⇒ Kiba::Extend::Registry::RegisteredDestination
-
#as_lookup(filekey, for_job) ⇒ Kiba::Extend::Registry::RegisteredLookup
-
#as_source(filekey, for_job) ⇒ Kiba::Extend::Registry::RegisteredSource
-
#entries ⇒ Array
-
#finalize ⇒ Object
Convenience method combining the steps of transforming initial registry entry hashes into FileRegistryEntry objects, and then making the registry immutable for the rest of the application’s run.
-
#replace_entry_x_with_entry_y(x:, y:) ⇒ Object
-
#transform ⇒ Object
Transforms registered file hashes into FileRegistryEntry objects.
-
#valid? ⇒ Boolean
-
#warnings? ⇒ Boolean
Instance Method Details
#as_destination(filekey, for_job) ⇒ Kiba::Extend::Registry::RegisteredDestination
46 47 48 49 50 51 52 53 54 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 46 def as_destination(filekey, for_job) RegisteredDestination.new( key: filekey, data: lookup(filekey), for_job: for_job ) rescue KeyNotRegisteredError => err raise KeyNotRegisteredError.new(err.key, :destination) end |
#as_lookup(filekey, for_job) ⇒ Kiba::Extend::Registry::RegisteredLookup
59 60 61 62 63 64 65 66 67 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 59 def as_lookup(filekey, for_job) RegisteredLookup.new( key: filekey, data: lookup(filekey), for_job: for_job ) rescue KeyNotRegisteredError => err raise KeyNotRegisteredError.new(err.key, :lookup) end |
#as_source(filekey, for_job) ⇒ Kiba::Extend::Registry::RegisteredSource
72 73 74 75 76 77 78 79 80 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 72 def as_source(filekey, for_job) RegisteredSource.new( key: filekey, data: lookup(filekey), for_job: for_job ) rescue KeyNotRegisteredError => err raise KeyNotRegisteredError.new(err.key, :source) end |
#entries ⇒ Array
83 84 85 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 83 def entries @entries ||= populate_entries end |
#finalize ⇒ Object
Convenience method combining the steps of transforming
initial registry entry hashes into FileRegistryEntry
objects, and then making the registry immutable for the
rest of the application’s run. :freeze
is from
dry-container.
111 112 113 114 115 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 111 def finalize transform @frozen = true freeze end |
#replace_entry_x_with_entry_y(x:, y:) ⇒ Object
This method only works before #freeze or #finalize are called on the FileRegistry.
93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 93 def replace_entry_x_with_entry_y(x:, y:) if @frozen return self && warn("#{Kiba::Extend.warning_label}: Cannot modify "\ "frozen registry (replace #{x} with #{y})") end _container.delete(x.to_s) entry = _container[y.to_s] _container.delete(y.to_s) _container[x.to_s] = entry self end |
#transform ⇒ Object
Transforms registered file hashes into Kiba::Extend::Registry::FileRegistryEntry objects
119 120 121 122 123 124 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 119 def transform each { |key, val| decorate(key) { FileRegistryEntry.new(val) } } @entries = populate_entries each { |key, val| val.set_key(key) } verify_paths end |
#valid? ⇒ Boolean
126 127 128 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 126 def valid? validator.valid? end |
#warnings? ⇒ Boolean
130 131 132 |
# File 'lib/kiba/extend/registry/file_registry.rb', line 130 def warnings? validator.warnings? end |