Module: Match::Storage
- Defined in:
- match/lib/match/storage.rb,
match/lib/match/storage/interface.rb,
match/lib/match/storage/git_storage.rb,
match/lib/match/storage/google_cloud_storage.rb
Defined Under Namespace
Classes: GitStorage, GoogleCloudStorage, Interface
Class Method Summary
collapse
Class Method Details
.for_mode(storage_mode, params) ⇒ Object
34
35
36
37
38
39
|
# File 'match/lib/match/storage.rb', line 34
def for_mode(storage_mode, params)
configurator = backends[storage_mode.to_s]
return configurator.call(params) if configurator
UI.user_error!("No storage backend for storage mode '#{storage_mode}'")
end
|
.register_backend(type: nil, storage_class: nil, &configurator) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'match/lib/match/storage.rb', line 19
def register_backend(type: nil, storage_class: nil, &configurator)
UI.user_error!("No type specified for storage backend") if type.nil?
normalized_name = type.to_s
UI.message("Replacing Match::Encryption backend for type '#{normalized_name}'") if backends.include?(normalized_name)
if configurator
@backends[normalized_name] = configurator
elsif storage_class
@backends[normalized_name] = ->(params) { return storage_class.configure(params) }
else
UI.user_error!("Specify either a `storage_class` or a configuration block when registering a storage backend")
end
end
|