class Moltrio::Config::MultitenantDirectoryAdapter

Attributes

config[R]
dir_path[R]
must_exist[R]
single_adapters[R]

Public Class Methods

new(config, dir_path, must_exist: false) click to toggle source
# File lib/moltrio/config/adapters/multitenant_directory_adapter.rb, line 11
def initialize(config, dir_path, must_exist: false)
  @config = config
  @dir_path = Pathname(dir_path)
  @single_adapters = Hamster.hash
  @must_exist = must_exist
end

Public Instance Methods

available_namespaces() click to toggle source
# File lib/moltrio/config/adapters/multitenant_directory_adapter.rb, line 31
def available_namespaces
  config_child_dirs = dir_path.children
    .select(&:directory?)
    .select { |dir| (dir + 'config.yml').file? }

  config_child_dirs.map { |dir| dir.basename.to_s }
end
missing_namespace?() click to toggle source
# File lib/moltrio/config/adapters/multitenant_directory_adapter.rb, line 18
def missing_namespace?
  true
end
on_namespace(namespace) click to toggle source
# File lib/moltrio/config/adapters/multitenant_directory_adapter.rb, line 22
def on_namespace(namespace)
  unless adapter = single_adapters[namespace]
    adapter = create_single_adapter_for(namespace)
    @single_adapters = single_adapters.put(namespace, adapter)
  end

  adapter
end

Private Instance Methods

create_single_adapter_for(namespace) click to toggle source
# File lib/moltrio/config/adapters/multitenant_directory_adapter.rb, line 42
def create_single_adapter_for(namespace)
  path = dir_path + namespace.to_s + 'config.yml'
  SingleFileAdapter.new(config, path, must_exist: must_exist)
end