module RailsMultitenant::GlobalContextRegistry::Current::ClassMethods
Public Instance Methods
as_current(object) { || ... }
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 41 def as_current(object) old_object = current if current? self.current = object yield ensure self.current = old_object end
clear_current!()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 37 def clear_current! GlobalContextRegistry.delete(current_registry_obj) end
current()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 18 def current GlobalContextRegistry.fetch(current_registry_obj) { __current_default } end
current!()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 33 def current! current || raise("No current #{name} set") end
current=(object)
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 22 def current=(object) raise "#{object} is not a #{self}" if object.present? && !object.is_a?(self) GlobalContextRegistry.set(current_registry_obj, object) __clear_dependents! end
current?()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 29 def current? GlobalContextRegistry.get(current_registry_obj).present? end
provide_default(provider = nil, &block)
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 51 def provide_default(provider = nil, &block) self.default_provider = provider ? provider.to_proc : block end
Private Instance Methods
__clear_dependents!()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 76 def __clear_dependents! GlobalContextRegistry.send(:dependencies_for, __key_class).each(&:clear_current!) end
__current_default()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 67 def __current_default if default_provider default = default_provider.call(self) raise "#{default} is not a #{self}" if default.present? && !default.is_a?(self) default end end
__key_class()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 80 def __key_class respond_to?(:base_class) ? base_class : self end
current_registry_default_provider()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 63 def current_registry_default_provider "#{__key_class.name.underscore}_default_provider".to_sym end
current_registry_obj()
click to toggle source
# File lib/rails_multitenant/global_context_registry/current.rb, line 57 def current_registry_obj return @current_registry_obj if @current_registry_obj @current_registry_obj = "#{__key_class.name.underscore}_obj".to_sym end