Module: TenantUtils

Defined in:
lib/utils/tenants.rb

Class Method Summary collapse

Class Method Details

.camelize_key(key) ⇒ Object



22
23
24
25
26
# File 'lib/utils/tenants.rb', line 22

def self.camelize_key(key)
  key = key.to_s
  return key if key.match?(/[a-z][A-Z]/)
  key.gsub(/_([a-z0-9])/) { $1.upcase }
end

.deep_camelize_keys(obj) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/utils/tenants.rb', line 28

def self.deep_camelize_keys(obj)
  case obj
  when Array
    obj.map { |v| deep_camelize_keys(v) }
  when Hash
    obj.transform_keys { |k| k.is_a?(Symbol) ? camelize_key(k.to_s).to_sym : camelize_key(k.to_s) }
       .transform_values { |v| deep_camelize_keys(v) }
  else
    obj
  end
end

.extract_tenant_field(tenants, dashboard_owner) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/utils/tenants.rb', line 12

def self.extract_tenant_field(tenants, dashboard_owner)
  if tenants[0].is_a?(String) || tenants[0].is_a?(Numeric)
    dashboard_owner
  elsif tenants[0].is_a?(Hash) && (tenants[0].key?('tenant_field') || tenants[0].key?(:tenant_field))
    tenants[0]['tenant_field'] || tenants[0][:tenant_field]
  else
    raise 'Invalid format for tenants'
  end
end

.extract_tenant_ids(tenants) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/utils/tenants.rb', line 2

def self.extract_tenant_ids(tenants)
  if tenants[0].is_a?(String) || tenants[0].is_a?(Numeric)
    tenants
  elsif tenants[0].is_a?(Hash) && (tenants[0].key?('tenant_ids') || tenants[0].key?(:tenant_ids))
    tenants[0]['tenant_ids'] || tenants[0][:tenant_ids]
  else
    raise 'Invalid format for tenants'
  end
end