class ApiValve::Proxy
Constants
- FORWARDER_OPTIONS
Attributes
forwarder[R]
middleware[R]
request[R]
route_set[R]
router[R]
Public Class Methods
new(forwarder)
click to toggle source
# File lib/api_valve/proxy.rb, line 19 def initialize(forwarder) @forwarder = forwarder @route_set = RouteSet.new @middleware = Middleware.new use Middleware::Router, route_set end
Public Instance Methods
call(env)
click to toggle source
# File lib/api_valve/proxy.rb, line 26 def call(env) to_app.call(env) rescue ApiValve::Error::Client, ApiValve::Error::Server => e render_error e end
deny(methods, path_regexp = nil, with: 'Error::Forbidden')
click to toggle source
# File lib/api_valve/proxy.rb, line 46 def deny(methods, path_regexp = nil, with: 'Error::Forbidden') route_set.append(methods, path_regexp, {}) { raise ApiValve.const_get(with) } end
forward(methods, path_regexp = nil, options = {})
click to toggle source
# File lib/api_valve/proxy.rb, line 35 def forward(methods, path_regexp = nil, options = {}) options = options.with_indifferent_access route_set.append(methods, path_regexp, options.except(:request)) do |request, match_data| forwarder.call request, {'match_data' => match_data}.merge(options[:request] || {}).with_indifferent_access end end
forward_all(options = {})
click to toggle source
# File lib/api_valve/proxy.rb, line 42 def forward_all(options = {}) forward(RouteSet::METHODS, nil, options) end
Protected Instance Methods
render_error(error)
click to toggle source
# File lib/api_valve/proxy.rb, line 52 def render_error(error) self.class.const_get(ApiValve.error_responder).new(error).call end
to_app()
click to toggle source
# File lib/api_valve/proxy.rb, line 56 def to_app @to_app ||= @middleware.to_app(Runner.new) end