module Katinguele::Client::Builder
Public Class Methods
extended(base)
click to toggle source
# File lib/katinguele/client/builder.rb, line 8 def self.extended(base) base.send(:build_katinguele_options) base.send(:build_katinguele_request_attributes) base.katinguele_options end
Public Instance Methods
katinguele_request_options(options)
click to toggle source
# File lib/katinguele/client/builder.rb, line 14 def katinguele_request_options(options) build_katinguele_request_options(options) end
katinguele_service(name, options = {})
click to toggle source
# File lib/katinguele/client/builder.rb, line 18 def katinguele_service(name, options = {}) build_katinguele_service(name, { lazy: false }.merge(options || {})) end
Private Instance Methods
build_katinguele_options()
click to toggle source
# File lib/katinguele/client/builder.rb, line 24 def build_katinguele_options define_singleton_method(:katinguele_options) { @katinguele_options ||= {} } end
build_katinguele_request(force = false)
click to toggle source
# File lib/katinguele/client/builder.rb, line 39 def build_katinguele_request(force = false) Katinguele.configuration .find_service(katinguele_options[:service_name]) .then { |service| handle_unknown_service!(service, force) } .then { |service| create_request(service, force) } .then { |request| katinguele_options[:request] = request } .then { build_katinguele_request_attributes } end
build_katinguele_request_attributes()
click to toggle source
# File lib/katinguele/client/builder.rb, line 48 def build_katinguele_request_attributes define_singleton_method(:katinguele_request_attributes) { katinguele_options&.[](:request)&.attributes || {} } end
build_katinguele_request_options(options = {})
click to toggle source
# File lib/katinguele/client/builder.rb, line 28 def build_katinguele_request_options(options = {}) katinguele_options[:request_options] ||= options build_katinguele_request end
build_katinguele_service(name = nil, options = {})
click to toggle source
# File lib/katinguele/client/builder.rb, line 33 def build_katinguele_service(name = nil, options = {}) katinguele_options[:service_name] ||= name katinguele_options[:service_options] ||= options build_katinguele_request end
create_request(service, force)
click to toggle source
# File lib/katinguele/client/builder.rb, line 63 def create_request(service, force) return unless take_request?(force) Katinguele.configuration.request_by(service, katinguele_options[:request_options]) end
handle_unknown_service!(service, force)
click to toggle source
# File lib/katinguele/client/builder.rb, line 52 def handle_unknown_service!(service, force) return unless take_request?(force) raise UnknownService if !service && katinguele_options[:service_name] service end
take_request?(force)
click to toggle source
# File lib/katinguele/client/builder.rb, line 59 def take_request?(force) !katinguele_options.dig(:service_options, :lazy) || force end