Class: Ekylibre::MultiTenancy::TenantRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/ekylibre/multi_tenancy/tenant_repository.rb

Instance Method Summary collapse

Constructor Details

#initialize(private_root:, tenants_file:) ⇒ TenantRepository

Returns a new instance of TenantRepository.

Parameters:

  • private_root (Pathname)


14
15
16
17
18
# File 'lib/ekylibre/multi_tenancy/tenant_repository.rb', line 14

def initialize(private_root:, tenants_file:)
  @private_root = private_root
  @tenants_file = tenants_file
  @write_mutex = Mutex.new
end

Instance Method Details

#delete(name) ⇒ Object



30
31
32
33
34
# File 'lib/ekylibre/multi_tenancy/tenant_repository.rb', line 30

def delete(name)
  tenants.delete(name)

  write
end

#get(name) ⇒ Tenant?

Parameters:

  • name (String)

Returns:



22
23
24
25
26
27
28
# File 'lib/ekylibre/multi_tenancy/tenant_repository.rb', line 22

def get(name)
  if has?(name)
    Tenant.new(name: name, private_directory: private_root.join(name))
  else
    nil
  end
end

#has?(name) ⇒ Boolean

Parameters:

  • name (String)

Returns:

  • (Boolean)


38
39
40
# File 'lib/ekylibre/multi_tenancy/tenant_repository.rb', line 38

def has?(name)
  list.include?(name)
end

#listArray<String>

Returns:

  • (Array<String>)


43
44
45
# File 'lib/ekylibre/multi_tenancy/tenant_repository.rb', line 43

def list
  tenants.fetch(::Rails.env.to_s, [])
end