Class: Tzispa::Engine::Rig::Context

Inherits:
Http::Context show all
Includes:
Helpers::Security
Defined in:
lib/tzispa/engine/rig/context.rb

Instance Attribute Summary

Attributes inherited from Http::Context

#request, #response

Attributes inherited from Context

#app, #cache, #env

Instance Method Summary collapse

Methods inherited from Http::Context

#app_canonical_url, #app_path, #canonical_root, #canonical_url, #error_log, #info_log, #initialize, #path, #request_method, #router_params

Methods inherited from Context

#initialize

Constructor Details

This class inherits a constructor from Tzispa::Http::Context

Instance Method Details

#api(handler, verb, predicate = nil, sufix = nil, app_name = nil) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/tzispa/engine/rig/context.rb', line 45

def api(handler, verb, predicate = nil, sufix = nil, app_name = nil)
  if app_name
    app_canonical_url app_name, :api, handler: handler, verb: verb,
                                      predicate: predicate, sufix: sufix
  else
    canonical_url :api, handler: handler, verb: verb,
                        predicate: predicate, sufix: sufix
  end
end

#app_layout_canonical_url(app_name, layout, params = {}) ⇒ Object



37
38
39
# File 'lib/tzispa/engine/rig/context.rb', line 37

def app_layout_canonical_url(app_name, layout, params = {})
  "#{canonical_root}#{app_layout_path(app_name, layout, params)}"
end

#app_layout_path(app_name, layout, params = {}) ⇒ Object



27
28
29
30
31
# File 'lib/tzispa/engine/rig/context.rb', line 27

def app_layout_path(app_name, layout, params = {})
  is_default = app[app_name].default_layout? == layout
  params = normalize_format(params.merge(layout: layout)) unless is_default
  app[app_name].routes.path layout, params
end

#default_layout?(layout) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/tzispa/engine/rig/context.rb', line 17

def default_layout?(layout)
  config.default_layout&.to_sym == layout
end

#layoutObject



13
14
15
# File 'lib/tzispa/engine/rig/context.rb', line 13

def layout
  router_params&.fetch(:layout, nil)
end

#layout_canonical_url(layout, params = {}) ⇒ Object



33
34
35
# File 'lib/tzispa/engine/rig/context.rb', line 33

def layout_canonical_url(layout, params = {})
  "#{canonical_root}#{layout_path(layout, params)}"
end

#layout_path(layout, params = {}) ⇒ Object



21
22
23
24
25
# File 'lib/tzispa/engine/rig/context.rb', line 21

def layout_path(layout, params = {})
  is_default = default_layout? layout
  params = normalize_format(params.merge(layout: layout)) unless is_default
  app.routes.path layout, params
end

#path_sign?(sign, *args) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/tzispa/engine/rig/context.rb', line 41

def path_sign?(sign, *args)
  sign == sign_array(args, config.salt)
end

#sapi(handler, verb, predicate = nil, sufix = nil, app_name = nil) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/tzispa/engine/rig/context.rb', line 55

def sapi(handler, verb, predicate = nil, sufix = nil, app_name = nil)
  if app_name
    sign = sign_array [handler, verb, predicate], app[:app_name].config.salt
    app_canonical_url app_name, :sapi, sign: sign, handler: handler,
                                       verb: verb, predicate: predicate, sufix: sufix
  else
    sign = sign_array [handler, verb, predicate], app.config.salt
    canonical_url :sapi, sign: sign, handler: handler,
                         verb: verb, predicate: predicate, sufix: sufix
  end
end