Class: EndpointFlux::Config
- Inherits:
-
Object
- Object
- EndpointFlux::Config
show all
- Defined in:
- lib/endpoint_flux/config.rb,
lib/endpoint_flux/config/middleware.rb,
lib/endpoint_flux/config/interceptor.rb,
lib/endpoint_flux/config/rescue_from.rb
Defined Under Namespace
Classes: Interceptor, Middleware, RescueFrom
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
9
10
11
12
13
14
15
|
# File 'lib/endpoint_flux/config.rb', line 9
def initialize
@flow = i[authenticator authorizator validator policy process decorator]
@default_middlewares = {}
@rescue_from = EndpointFlux::Config::RescueFrom.new
@endpoints_namespace = 'endpoints'
@middlewares_namespaces = ['endpoint_flux/middlewares']
end
|
Instance Attribute Details
#middlewares_namespaces ⇒ Object
Returns the value of attribute middlewares_namespaces.
7
8
9
|
# File 'lib/endpoint_flux/config.rb', line 7
def middlewares_namespaces
@middlewares_namespaces
end
|
Instance Method Details
#default_middlewares(name = nil, klass_name = nil) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/endpoint_flux/config.rb', line 29
def default_middlewares(name = nil, klass_name = nil)
if name
@default_middlewares[name] ||= []
if klass_name
klass = fetch_middleware_class!(name.to_s, klass_name.to_s)
@default_middlewares[name] << EndpointFlux::Config::Middleware.new(klass)
end
return @default_middlewares[name]
end
@default_middlewares
end
|
#endpoints_namespace(name = nil) ⇒ Object
59
60
61
62
63
|
# File 'lib/endpoint_flux/config.rb', line 59
def endpoints_namespace(name = nil)
@endpoints_namespace = name if name
@endpoints_namespace
end
|
#fetch_middleware_class(name, klass_name) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/endpoint_flux/config.rb', line 73
def fetch_middleware_class(name, klass_name)
middlewares_namespaces.each do |namespace|
klass = EndpointFlux::ClassLoader.load_class(
[namespace, name.to_s, klass_name.to_s].compact.join('/')
)
return klass if klass
end
nil
end
|
#fetch_middleware_class!(name, klass_name) ⇒ Object
65
66
67
68
69
70
71
|
# File 'lib/endpoint_flux/config.rb', line 65
def fetch_middleware_class!(name, klass_name)
klass = fetch_middleware_class(name, klass_name)
raise "The [#{name}][#{klass_name}] should be a string representing a class" unless klass
klass
end
|
#flow(new_flow = nil) ⇒ Object
23
24
25
26
27
|
# File 'lib/endpoint_flux/config.rb', line 23
def flow(new_flow = nil)
@flow = new_flow if new_flow
@flow
end
|
#interceptor(&block) ⇒ Object
17
18
19
20
21
|
# File 'lib/endpoint_flux/config.rb', line 17
def interceptor(&block)
@interceptor ||= EndpointFlux::Config::Interceptor.new
@interceptor.add(&block) if block_given?
@interceptor
end
|
#rescue_from(klass_names = nil, &block) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/endpoint_flux/config.rb', line 44
def rescue_from(klass_names = nil, &block)
if klass_names
if klass_names.respond_to?(:to_ary)
klass_names.to_ary || [klass_names]
else
[klass_names]
end.each do |klass_name|
klass = EndpointFlux::ClassLoader.load_class!(klass_name)
@rescue_from.add(klass, &block)
end
end
@rescue_from
end
|