module ActsAsTenant
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/acts_as_tenant.rbs module ActsAsTenant def self.configuration: () -> untyped def self.current_tenant: () -> untyped def self.current_tenant=: (Account tenant) -> untyped end
def self.add_global_record_model model
def self.add_global_record_model model @@models_with_global_records.push(model) end
def self.configuration
Experimental RBS support (using type sampling data from the type_fusion
project).
def self.configuration: () -> untyped
This signature was generated using 1 sample from 1 application.
def self.configuration @@configuration || configure end
def self.configure
def self.configure @@configuration = Configuration.new yield configuration if block_given? configuration end
def self.current_tenant
Experimental RBS support (using type sampling data from the type_fusion
project).
def self.current_tenant: () -> untyped
This signature was generated using 2 samples from 1 application.
def self.current_tenant RequestStore.store[:current_tenant] || test_tenant || default_tenant end
def self.current_tenant=(tenant)
Experimental RBS support (using type sampling data from the type_fusion
project).
def self.current_tenant=: (Account tenant) -> untyped
This signature was generated using 2 samples from 1 application.
def self.current_tenant=(tenant) RequestStore.store[:current_tenant] = tenant end
def self.default_tenant
def self.default_tenant @default_tenant unless unscoped end
def self.fkey
def self.fkey "#{@@tenant_klass}_id" end
def self.models_with_global_records
def self.models_with_global_records @@models_with_global_records end
def self.mutable_tenant!(toggle)
def self.mutable_tenant!(toggle) @@mutable_tenant = toggle end
def self.mutable_tenant?
def self.mutable_tenant? @@mutable_tenant end
def self.pkey
def self.pkey ActsAsTenant.configuration.pkey end
def self.polymorphic_type
def self.polymorphic_type "#{@@tenant_klass}_type" end
def self.set_tenant_klass(klass)
def self.set_tenant_klass(klass) @@tenant_klass = klass end
def self.should_require_tenant?
def self.should_require_tenant? if configuration.require_tenant.respond_to?(:call) !!configuration.require_tenant.call else !!configuration.require_tenant end end
def self.tenant_klass
def self.tenant_klass @@tenant_klass end
def self.test_tenant
def self.test_tenant Thread.current[:test_tenant] end
def self.test_tenant=(tenant)
def self.test_tenant=(tenant) Thread.current[:test_tenant] = tenant end
def self.unscoped
def self.unscoped RequestStore.store[:acts_as_tenant_unscoped] end
def self.unscoped=(unscoped)
def self.unscoped=(unscoped) RequestStore.store[:acts_as_tenant_unscoped] = unscoped end
def self.unscoped?
def self.unscoped? !!unscoped end
def self.with_mutable_tenant(&block)
def self.with_mutable_tenant(&block) ActsAsTenant.mutable_tenant!(true) without_tenant(&block) ensure ActsAsTenant.mutable_tenant!(false) end
def self.with_tenant(tenant, &block)
def self.with_tenant(tenant, &block) if block.nil? raise ArgumentError, "block required" end old_tenant = current_tenant self.current_tenant = tenant value = block.call value ensure self.current_tenant = old_tenant end
def self.without_tenant(&block)
def self.without_tenant(&block) if block.nil? raise ArgumentError, "block required" end old_tenant = current_tenant old_test_tenant = test_tenant old_unscoped = unscoped self.current_tenant = nil self.test_tenant = nil self.unscoped = true value = block.call value ensure self.current_tenant = old_tenant self.test_tenant = old_test_tenant self.unscoped = old_unscoped end