module Tenancy::Resource::ClassMethods

Public Instance Methods

current() click to toggle source
# File lib/tenancy/resource.rb, line 20
def current
  RequestStore.store[:"#{name}.current"]
end
current=(value) click to toggle source
# File lib/tenancy/resource.rb, line 7
def current=(value)
  tenant = case value
  when self
    value
  when nil
    nil
  else
    find(value)
  end

  RequestStore.store[:"#{name}.current"] = tenant
end
current_id() click to toggle source
# File lib/tenancy/resource.rb, line 24
def current_id
  current.try(:id)
end
use_tenant(tenant, &block)
Alias for: with_tenant
with_tenant(tenant, &block) click to toggle source
# File lib/tenancy/resource.rb, line 28
def with_tenant(tenant, &block)
  raise ArgumentError, "block required" if block.nil?

  begin
    old          = self.current
    self.current = tenant

    block.call
  ensure
    self.current = old
  end
end
Also aliased as: use_tenant