Class: Rambling::Trie::Configuration::ProviderCollection
- Inherits:
-
Object
- Object
- Rambling::Trie::Configuration::ProviderCollection
- Defined in:
- lib/rambling/trie/configuration/provider_collection.rb,
sig/lib/rambling/trie/configuration/provider_collection.rbs
Overview
Collection of configurable providers.
Instance Attribute Summary collapse
-
#configured_default ⇒ TProvider?
readonly
Returns the value of attribute configured_default.
-
#configured_providers ⇒ Hash[Symbol, TProvider]
readonly
Returns the value of attribute configured_providers.
-
#default ⇒ TProvider?
The default provider to use when a provider cannot be resolved in #resolve.
-
#name ⇒ Symbol
readonly
The name of this provider collection.
Instance Method Summary collapse
-
#[](format) ⇒ TProvider?
Get provider corresponding to a given format.
- #[]=(format, instance) ⇒ TProvider
-
#add(extension, provider) ⇒ TProvider
Adds a new provider to the provider collection.
- #contains?(provider) ⇒ Boolean
- #file_format(filepath) ⇒ Symbol
-
#formats ⇒ Array<Symbol>
List the formats of configured providers.
-
#initialize(name, providers = {}, default = nil) ⇒ ProviderCollection
constructor
Creates a new provider collection.
-
#providers ⇒ Hash<Symbol, TProvider>
List of configured providers.
-
#reset ⇒ void
Resets the provider collection to the initial values.
-
#resolve(filepath) ⇒ TProvider?
Resolves the provider from a filepath based on the file extension.
- #values ⇒ Array[TProvider] (also: #provider_instances)
Constructor Details
#initialize(name, providers = {}, default = nil) ⇒ ProviderCollection
Creates a new provider collection.
29 30 31 32 33 34 35 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 29 def initialize name, providers = {}, default = nil @name = name @configured_providers = providers @configured_default = default || providers.values.first reset end |
Instance Attribute Details
#configured_default ⇒ TProvider? (readonly)
Returns the value of attribute configured_default.
95 96 97 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 95 def configured_default @configured_default end |
#configured_providers ⇒ Hash[Symbol, TProvider] (readonly)
Returns the value of attribute configured_providers.
95 96 97 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 95 def configured_providers @configured_providers end |
#default ⇒ TProvider? #default=(provider) ⇒ TProvider?
Returns the default provider to use when a provider cannot be resolved in #resolve.
22 23 24 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 22 def default @default end |
#name ⇒ Symbol (readonly)
The name of this provider collection.
10 11 12 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 10 def name @name end |
Instance Method Details
#[](format) ⇒ TProvider?
Get provider corresponding to a given format.
89 90 91 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 89 def [] format providers[format] end |
#[]=(format, instance) ⇒ TProvider
97 98 99 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 97 def []= format, instance providers[format] = instance end |
#add(extension, provider) ⇒ TProvider
Adds a new provider to the provider collection.
41 42 43 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 41 def add extension, provider providers[extension] = provider end |
#contains?(provider) ⇒ Boolean
109 110 111 112 113 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 109 def contains? provider return true if provider.nil? provider_instances.include?(provider || raise) end |
#file_format(filepath) ⇒ Symbol
105 106 107 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 105 def file_format filepath File.extname(filepath).sub(%r{^\.}, '').to_sym end |
#formats ⇒ Array<Symbol>
List the formats of configured providers.
81 82 83 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 81 def formats providers.keys end |
#providers ⇒ Hash<Symbol, TProvider>
List of configured providers.
53 54 55 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 53 def providers @providers ||= {} end |
#reset ⇒ void
This method returns an undefined value.
Resets the provider collection to the initial values.
71 72 73 74 75 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 71 def reset providers.clear configured_providers.each { |extension, provider| self[extension] = provider } self.default = configured_default end |
#resolve(filepath) ⇒ TProvider?
Resolves the provider from a filepath based on the file extension.
60 61 62 63 64 65 66 67 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 60 def resolve filepath extension = file_format filepath if providers.key? extension providers[extension] else default end end |
#values ⇒ Array[TProvider] Also known as: provider_instances
101 102 103 |
# File 'lib/rambling/trie/configuration/provider_collection.rb', line 101 def values providers.values end |