class Rack::App::Endpoint::Config

Public Class Methods

new(raw) click to toggle source
# File lib/rack/app/endpoint/config.rb, line 91
def initialize(raw)
  @raw = raw
end

Public Instance Methods

ancestor_apps() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 30
def ancestor_apps
  [@raw[:ancestors]].flatten.compact
end
app_class() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 34
def app_class
  ancestor_apps.first || raise('missing app class')
end
callable() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 13
def callable
  @raw[:callable]
end
defined_request_path() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 79
def defined_request_path
  Rack::App::Utils.normalize_path(@raw[:defined_request_path] ||= request_path)
end
description() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 83
def description
  @raw[:route][:description] || @raw[:route][:desc]
rescue
  nil
end
endpoint_specific_middlewares() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 67
def endpoint_specific_middlewares
  @raw[:endpoint_specific_middlewares] ||= []
end
error_handler() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 63
def error_handler
  @raw[:error_handler] ||= Rack::App::ErrorHandler.new
end
middlewares() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 38
def middlewares
  mws = []
  ancestor_apps.reverse_each do |ancestors_app|
    mws.push(*ancestors_app.middlewares)
  end
  mws.push(*endpoint_specific_middlewares)
  return mws
end
payload() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 51
def payload
  app_class.__send__(:payload)
end
payload_builder() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 26
def payload_builder
  @raw[:payload].parser_builder
end
payload_parser() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 55
def payload_parser
  payload.parser.to_parser
end
request_method() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 71
def request_method
  @raw[:request_method] || raise('missing config: request_methods')
end
request_path() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 75
def request_path
  Rack::App::Utils.normalize_path(@raw[:request_path] || raise('missing request_path!'))
end
serializer() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 47
def serializer
  serializer_builder.to_serializer
end
serializer_builder() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 59
def serializer_builder
  @raw[:serializer_builder] ||= app_class.__send__(:formats)
end
to_hash() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 4
def to_hash
  error_handler
  endpoint_specific_middlewares
  request_path
  request_method
  defined_request_path
  @raw
end
type() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 17
def type
  case callable
  when ::Rack::App::Block
    :endpoint
  else
    :application
  end
end

Protected Instance Methods

logic_block() click to toggle source
# File lib/rack/app/endpoint/config.rb, line 95
def logic_block
  @raw[:user_defined_logic]
end