module EntityCache::Store::Internal::Build

Constants

ScopeError

Public Class Methods

call(subject, scope: nil) click to toggle source
# File lib/entity_cache/store/internal/build.rb, line 5
def self.call(subject, scope: nil)
  scope ||= Defaults.scope

  cls = scope_class(scope)

  cls.build(subject)
end
default_scope_class() click to toggle source
# File lib/entity_cache/store/internal/build.rb, line 13
def self.default_scope_class
  scope_class(Defaults.scope)
end
logger() click to toggle source
# File lib/entity_cache/store/internal/build.rb, line 40
def self.logger
  @logger ||= Log.get(self)
end
scope_class(scope) click to toggle source
# File lib/entity_cache/store/internal/build.rb, line 17
        def self.scope_class(scope)
          scopes.fetch(scope) do
            *scopes, final_scope = self.scopes.keys

            scope_list = <<~TEXT
            #{scopes.map(&:inspect) * ', '} or #{final_scope.inspect}
            TEXT

            error_message = %{Scope #{scope.inspect} is unknown. It must be one of: #{scope_list}}

            logger.error(error_message)
            raise ScopeError, error_message
          end
        end
scopes() click to toggle source
# File lib/entity_cache/store/internal/build.rb, line 32
def self.scopes
  @scopes ||= {
    :exclusive => Scope::Exclusive,
    :global => Scope::Global,
    :thread => Scope::Thread
  }
end