class Sand::Middleware

Constants

DEFAULT_OPTIONS

Attributes

app[R]
options[R]
response[R]

Public Class Methods

new(app, options = {}) click to toggle source
# File lib/sand/middleware.rb, line 18
def initialize(app, options = {})
  @app = app
  @options = DEFAULT_OPTIONS.merge(options)
end

Public Instance Methods

call(env) click to toggle source
# File lib/sand/middleware.rb, line 29
def call(env)
  env['sand'] = RequestMethods.new(env)

  result = app.call(env)

  return result if passed?(env)
  raise Sand::AuthorizationNotPerformed
end
passed?(env) click to toggle source
# File lib/sand/middleware.rb, line 23
def passed?(env)
  return true if options[:pass].any? { |r| r =~ env['PATH_INFO'] }
  return true if env['sand.pass'] == true || env['sand.scoped'] || env['sand.authorized'] == true # rubocop:disable Metrics/LineLength
  false
end