Class: Moltrio::Config::MultitenantDirectoryAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/moltrio/config/adapters/multitenant_directory_adapter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, dir_path, must_exist: false) ⇒ MultitenantDirectoryAdapter

Returns a new instance of MultitenantDirectoryAdapter.



11
12
13
14
15
16
# 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

Instance Attribute Details

#dir_pathObject (readonly)

Returns the value of attribute dir_path.



10
11
12
# File 'lib/moltrio/config/adapters/multitenant_directory_adapter.rb', line 10

def dir_path
  @dir_path
end

#must_existObject (readonly)

Returns the value of attribute must_exist.



10
11
12
# File 'lib/moltrio/config/adapters/multitenant_directory_adapter.rb', line 10

def must_exist
  @must_exist
end

Instance Method Details

#available_namespacesObject



31
32
33
34
35
36
37
# 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?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/moltrio/config/adapters/multitenant_directory_adapter.rb', line 18

def missing_namespace?
  true
end

#on_namespace(namespace) ⇒ Object



22
23
24
25
26
27
28
29
# 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