Module: Mailscope::Storage

Defined in:
lib/mailscope/storage.rb,
lib/mailscope/storage/base.rb,
lib/mailscope/storage/filesystem.rb

Defined Under Namespace

Classes: Base, Filesystem

Constant Summary collapse

ADAPTERS =
{ filesystem: 'Mailscope::Storage::Filesystem' }.freeze

Class Method Summary collapse

Class Method Details

.build(adapter, **options) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/mailscope/storage.rb', line 14

def self.build(adapter, **options)
  return adapter unless adapter.is_a?(Symbol) || adapter.is_a?(String)

  class_name = ADAPTERS.fetch(adapter.to_sym) do
    raise ArgumentError, "unknown Mailscope storage adapter: #{adapter.inspect}"
  end
  Object.const_get(class_name).new(**options)
end

.register(name, class_name) ⇒ Object



10
11
12
# File 'lib/mailscope/storage.rb', line 10

def self.register(name, class_name)
  ADAPTERS.merge!(name.to_sym => class_name)
end