module Messaging::Handle::Build

Constants

Error

Public Class Methods

configure?(instance, parameter_name) click to toggle source
# File lib/messaging/handle.rb, line 57
def self.configure?(instance, parameter_name)
  configure_method = instance.method(:configure)

  parameter_type, _ = configure_method.parameters.find do |type, name|
    name == parameter_name
  end

  return false if parameter_type.nil?

  return true if [:key, :keyreq].include?(parameter_type)

  error_message = "Incorrect definition of handler's configure method. The #{parameter_name} parameter must be a keyword argument (Handler: #{instance.class}, Parameter Type: #{parameter_type.inspect})"
  handler_logger.error(tag: :handle) { error_message }
  raise Error, error_message
end
handler_logger() click to toggle source
# File lib/messaging/handle.rb, line 73
def self.handler_logger
  @handler_logger ||= Log.get(self)
end
send_session?(session, instance) click to toggle source
# File lib/messaging/handle.rb, line 49
def self.send_session?(session, instance)
  configure?(instance, :session) && !session.nil?
end
send_settings?(settings, instance) click to toggle source
# File lib/messaging/handle.rb, line 53
def self.send_settings?(settings, instance)
  configure?(instance, :settings) && !settings.nil?
end

Public Instance Methods

build(strict: nil, session: nil, settings: nil) click to toggle source
# File lib/messaging/handle.rb, line 30
def build(strict: nil, session: nil, settings: nil)
  instance = new
  instance.strict = strict

  arguments = {}

  if Build.send_session?(session, instance)
    arguments[:session] = session
  end

  if Build.send_settings?(settings, instance)
    arguments[:settings] = settings
  end

  instance.configure(**arguments)

  instance
end