class EndpointFlux::Config
Attributes
middlewares_namespaces[RW]
Public Class Methods
new()
click to toggle source
# 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
Public Instance Methods
default_middlewares(name = nil, klass_name = nil)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/endpoint_flux/config.rb, line 23 def flow(new_flow = nil) @flow = new_flow if new_flow @flow end
interceptor(&block)
click to toggle source
# 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)
click to toggle source
# 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