Module: EConstants

Included in:
EBuilder, ERewriter
Defined in:
lib/e-core/constants.rb,
lib/e-more/view/constants.rb

Constant Summary collapse

PATH_RULES =
{
  %r[____] => '.'.freeze,
  %r[___]  => '-'.freeze,
  %r[__]   => '/'.freeze,
}.freeze
INDEX_ACTION =
:index
HTTP__DEFAULT_SERVER =
:WEBrick
HTTP__DEFAULT_PORT =
5252
HTTP__DEFAULT_REQUEST_METHOD =
'GET'.freeze
HTTP__REQUEST_METHODS =
%w[GET POST PUT HEAD DELETE OPTIONS PATCH TRACE].freeze
CONTENT_TYPE__DEFAULT =
'text/html'.freeze
CONTENT_TYPE__EVENT_STREAM =
'text/event-stream'.freeze
STATUS__OK =
200
STATUS__PERMANENT_REDIRECT =
301
STATUS__REDIRECT =
302
STATUS__BAD_REQUEST =
400
STATUS__PROTECTED =
401
STATUS__NOT_FOUND =
404
STATUS__SERVER_ERROR =
500
STATUS__NOT_IMPLEMENTED =
501
ENV__SCRIPT_NAME =
'SCRIPT_NAME'.freeze
ENV__REQUEST_METHOD =
'REQUEST_METHOD'.freeze
ENV__REQUEST_URI =
'REQUEST_URI'.freeze
ENV__PATH_INFO =
'PATH_INFO'.freeze
ENV__HTTP_ACCEPT =
'HTTP_ACCEPT'.freeze
ENV__HTTP_HOST =
'HTTP_HOST'.freeze
ENV__SERVER_NAME =
'SERVER_NAME'.freeze
ENV__SERVER_PORT =
'SERVER_PORT'.freeze
ENV__QUERY_STRING =
'QUERY_STRING'.freeze
ENV__REMOTE_USER =
'REMOTE_USER'.freeze
ENV__RACK_ENV =
'RACK_ENV'.freeze
ENV__HTTP_X_FORWARDED_HOST =
'HTTP_X_FORWARDED_HOST'.freeze
ENV__HTTP_IF_NONE_MATCH =
'HTTP_IF_NONE_MATCH'.freeze
ENV__HTTP_IF_MODIFIED_SINCE =
'HTTP_IF_MODIFIED_SINCE'.freeze
ENV__HTTP_IF_UNMODIFIED_SINCE =
'HTTP_IF_UNMODIFIED_SINCE'.freeze
ENV__HTTP_X_REQUESTED_WITH =
'HTTP_X_REQUESTED_WITH'.freeze
ENV__XML_HTTP_REQUEST =
'XMLHttpRequest'.freeze
ENV__ESPRESSO_PATH_INFO =
'espresso.path_info'.freeze
ENV__ESPRESSO_ACTION =
'espresso.action'.freeze
ENV__ESPRESSO_FORMAT =
'espresso.format'.freeze
ENV__AUTHORIZATION_KEYS =
[
  'HTTP_AUTHORIZATION',
  'X-HTTP_AUTHORIZATION',
  'X_HTTP_AUTHORIZATION',
  'REDIRECT_X_HTTP_AUTHORIZATION'
].map(&:freeze).freeze
HEADER__CONTENT_TYPE =
'Content-Type'.freeze
HEADER__LAST_MODIFIED =
'Last-Modified'.freeze
HEADER__CACHE_CONTROL =
'Cache-Control'.freeze
HEADER__EXPIRES =
'Expires'.freeze
HEADER__LOCATION =
'Location'.freeze
HEADER__AUTHENTICATE =
'WWW-Authenticate'.freeze
HEADER__TRANSFER_ENCODING =
'Transfer-Encoding'.freeze
HEADER__CONTENT_DISPOSITION =
'Content-Disposition'.freeze
RACK__WEBSOCKET =
'rack.websocket'.freeze
PATH_MODIFIERS =
Regexp.union([
    /\\+/,
    /\/+/,
    /\A\.\.\Z/,
    '../', '/../', '/..',
    '..%2F', '%2F..%2F', '%2F..',
    '..\\', '\\..\\', '\\..',
    '..%5C', '%5C..%5C', '%5C..',
].map { |x| x.is_a?(String) ? Regexp.escape(x) : x }).freeze
VIEW__ENGINE_MAPPER =

this map is used to define adhoc renderers like ‘render_haml` etc.

{}
VIEW__ENGINE_BY_SYM =

used to validate engine provided by user. we could simply validate by Tilt.const_defined?(user_input + ‘Template’) but not all engines are registered under Tilt namespace, e.g. Slim, Rabl

{}
VIEW__EXTRA_ENGINES =

Slim and Rabl adapters not shipped with Tilt

{
  Slim: {extension: '.slim', template: 'Slim::Template'},
  Rabl: {extension: '.rabl', template: 'RablTemplate'}
}
VIEW__EXT_BY_ENGINE =

used to determine extension when no explicit extension given via ‘engine_ext` this will build a map like:

Tilt::ERBTemplate    => "erb",
Tilt::ErubisTemplate => "erb",
Tilt::HamlTemplate   => "haml",
# etc.

Tilt.mappings.sort { |a, b| b.first.size <=> a.first.size }.
inject({}) {|m,i| i.last.each { |e| m.update e => ('.' + i.first).freeze }; m }
VIEW__DEFAULT_PATH =
'view/'.freeze
VIEW__DEFAULT_ENGINE =
[Tilt::ERBTemplate]
VIEW__DEFAULT_ENGINE_NAME =
:ERB