module MultiTenantSupport::ActiveJob
Attributes
current_tenant[RW]
Public Instance Methods
deserialize(job_data)
click to toggle source
Calls superclass method
# File lib/multi_tenant_support/active_job.rb, line 63 def deserialize(job_data) self.current_tenant = find_current_tenant(job_data) MultiTenantSupport.under_tenant(current_tenant) do super end end
execute(job_data)
click to toggle source
Calls superclass method
# File lib/multi_tenant_support/active_job.rb, line 28 def execute(job_data) keep_current_tenant_unchange do super(job_data) end end
keep_current_tenant_unchange() { || ... }
click to toggle source
# File lib/multi_tenant_support/active_job.rb, line 36 def keep_current_tenant_unchange _current_tenant = MultiTenantSupport::Current.tenant_account yield ensure MultiTenantSupport::Current.tenant_account = _current_tenant end
perform_now(*args)
click to toggle source
# File lib/multi_tenant_support/active_job.rb, line 13 def perform_now(*args) job = job_or_instantiate(*args) job.current_tenant = MultiTenantSupport.current_tenant job.perform_now end
serialize()
click to toggle source
Calls superclass method
# File lib/multi_tenant_support/active_job.rb, line 50 def serialize if MultiTenantSupport.current_tenant super.merge({ "multi_tenant_support" => { "id" => MultiTenantSupport.current_tenant.id, "class" => MultiTenantSupport.current_tenant.class.name } }) else super end end
Private Instance Methods
find_current_tenant(data)
click to toggle source
# File lib/multi_tenant_support/active_job.rb, line 72 def find_current_tenant(data) return unless data.has_key?("multi_tenant_support") tenant_klass = data["multi_tenant_support"]["class"].constantize tenant_id = data["multi_tenant_support"]["id"] tenant_klass.find tenant_id end