Module: Angelo
- Defined in:
- lib/angelo.rb,
lib/angelo/base.rb,
lib/angelo/main.rb,
lib/angelo/stash.rb,
lib/angelo/server.rb,
lib/angelo/version.rb,
lib/angelo/tilt/erb.rb,
lib/angelo/responder.rb,
lib/angelo/templates.rb,
lib/angelo/params_parser.rb,
lib/angelo/minitest/helpers.rb,
lib/angelo/responder/websocket.rb,
lib/angelo/responder/eventsource.rb
Overview
require ‘ruby-prof’
RubyProf.start RubyProf.pause
Defined Under Namespace
Modules: Minitest, ParamsParser, Stash, Templates, Tilt Classes: Base, FormEncodingError, HALT_STRUCT, RequestError, Responder, Server, SymHash
Constant Summary collapse
- GET =
'GET'
- PATCH =
'PATCH'
- POST =
'POST'
- PUT =
'PUT'
- DELETE =
'DELETE'
- OPTIONS =
'OPTIONS'
- HTTPABLE =
[:get, :patch, :post, :put, :delete, :options]
- STATICABLE =
[:get, :head]
- POST_OVERRIDABLE =
[:patch, :put, :delete]
- ACCEPT_REQUEST_HEADER_KEY =
'Accept'
- POST_OVERRIDE_REQUEST_HEADER_KEY =
'X-Angelo-PostOverride'
- REAL_IP_REQUEST_HEADER_KEY =
'X-Real-IP'
- CONTENT_TYPE_HEADER_KEY =
'Content-Type'
- CONTENT_DISPOSITION_HEADER_KEY =
'Content-Disposition'
- CONTENT_LENGTH_HEADER_KEY =
'Content-Length'
- ATTACHMENT_CONTENT_DISPOSITION =
'attachment; filename="%s"'
- ETAG_HEADER_KEY =
'ETag'
- IF_NONE_MATCH_HEADER_KEY =
'If-None-Match'
- LOCATION_HEADER_KEY =
'Location'
- SSE_HEADER =
{ CONTENT_TYPE_HEADER_KEY => 'text/event-stream' }
- HTML_TYPE =
'text/html'
- JSON_TYPE =
'application/json'
- FORM_TYPE =
'application/x-www-form-urlencoded'
- FILE_TYPE =
'application/octet-stream'
- JS_TYPE =
'application/javascript'
- XML_TYPE =
'application/xml'
- DEFAULT_ADDR =
'127.0.0.1'
- DEFAULT_PORT =
4567
- DEFAULT_VIEWS_DIR =
'views'
- DEFAULT_PUBLIC_DIR =
'public'
- DEFAULT_LOG_LEVEL =
::Logger::INFO
- DEFAULT_RESPONSE_LOG_LEVEL =
:info
- DEFAULT_RESPONSE_HEADERS =
{ CONTENT_TYPE_HEADER_KEY => HTML_TYPE }
- NOT_FOUND =
'Not Found'
- LOG_FORMAT =
'%s - - "%s %s HTTP/%s" %d %s'
- DEFAULT_PING_TIME =
30
- UNDERSCORE =
'_'
- DASH =
'-'
- EMPTY_STRING =
''
- NEWLINE =
"\n"
- SEMICOLON =
';'
- EQUALS =
'='
- AMPERSAND =
'&'
- SSE_DATA_TEMPLATE =
"data: %s\n\n"
- SSE_EVENT_TEMPLATE =
"event: %s\ndata: %s\n\n"
- VERSION =
'0.5.1'
Class Attribute Summary collapse
Class Method Summary collapse
Class Attribute Details
.response_log_level ⇒ Object
81 82 83 |
# File 'lib/angelo.rb', line 81 def response_log_level @response_log_level ||= DEFAULT_RESPONSE_LOG_LEVEL end |
Class Method Details
.log(meth, connection, request, socket, status, body_size = '-') ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/angelo.rb', line 87 def self.log meth, connection, request, socket, status, body_size = '-' remote_ip = case when request.headers[REAL_IP_REQUEST_HEADER_KEY] request.headers[REAL_IP_REQUEST_HEADER_KEY] when socket socket.peeraddr(false)[3] else connection.remote_ip rescue 'unknown' end Celluloid::Internals::Logger.__send__ Angelo.response_log_level, LOG_FORMAT % [ remote_ip, (meth && meth.upcase) || request.method, request.url, request.version, Symbol === status ? HTTP::Response::Status::SYMBOL_CODES[status] : status, body_size ] end |