class Groundskeeper::Middleware

Constants

DEFAULT_KEY
MODEL_KEY
NAMESPACE_KEY
QUERY_DEFAULT
QUERY_KEY
TENANT_KEY

Public Class Methods

new(app, options = {}) click to toggle source
# File lib/groundskeeper/middleware.rb, line 12
def initialize(app, options = {})
  raise ArgumentError, "missing model" unless options.key?(model_key)

  @options = options
  @app = app
  @env = {}
end

Public Instance Methods

call(env) click to toggle source
# File lib/groundskeeper/middleware.rb, line 20
def call(env)
  @env = env
  env[namespace_key] = namespace
  env[tenant_key] = tenant
  @app.call(env)
end

Private Instance Methods

default() click to toggle source
# File lib/groundskeeper/middleware.rb, line 39
        def default
  @options[default_key]
end
default_key() click to toggle source
# File lib/groundskeeper/middleware.rb, line 59
        def default_key
  self.class.const_get("DEFAULT_KEY")
end
model() click to toggle source
# File lib/groundskeeper/middleware.rb, line 31
        def model
  if @options[model_key].is_a?(String)
    Object.const_get(@options[model_key])
  else
    @options[model_key]
  end
end
model_key() click to toggle source
# File lib/groundskeeper/middleware.rb, line 55
        def model_key
  self.class.const_get("MODEL_KEY")
end
namespace_key() click to toggle source
# File lib/groundskeeper/middleware.rb, line 47
        def namespace_key
  self.class.const_get("NAMESPACE_KEY")
end
query() click to toggle source
# File lib/groundskeeper/middleware.rb, line 43
        def query
  @options[query_key] || query_default
end
query_default() click to toggle source
# File lib/groundskeeper/middleware.rb, line 67
        def query_default
  self.class.const_get("QUERY_DEFAULT")
end
query_key() click to toggle source
# File lib/groundskeeper/middleware.rb, line 63
        def query_key
  self.class.const_get("QUERY_KEY")
end
tenant() click to toggle source
# File lib/groundskeeper/middleware.rb, line 27
        def tenant
  query.call(model, namespace) || default
end
tenant_key() click to toggle source
# File lib/groundskeeper/middleware.rb, line 51
        def tenant_key
  self.class.const_get("TENANT_KEY")
end