class SharedSettings::UI::Middleware

Public Class Methods

new(app) click to toggle source
# File lib/shared_settings/ui/middleware.rb, line 10
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/shared_settings/ui/middleware.rb, line 14
def call(env)
  request = Rack::Request.new(env)
  action = find_and_parse_route(request)
  request_method = request.request_method.downcase.to_sym

  return not_found if action.nil? || !action.method_defined?(request_method)

  action.new(request).send(request_method)
end

Private Instance Methods

find_and_parse_route(request) click to toggle source
# File lib/shared_settings/ui/middleware.rb, line 26
def find_and_parse_route(request)
  routes.find do |action|
    action.route_regex.match?(request.path_info)
  end
end
not_found() click to toggle source
# File lib/shared_settings/ui/middleware.rb, line 40
def not_found
  [404, { 'Content-Type' => 'application/json' }, ['']]
end
routes() click to toggle source
# File lib/shared_settings/ui/middleware.rb, line 32
def routes
  [
    Actions::Mount,
    Actions::Asset,
    Actions::Setting
  ]
end