Module: Messaging::Handle::Build

Defined in:
lib/messaging/handle.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configure_session?(instance) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (ArgumentError)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/messaging/handle.rb', line 39

def self.configure_session?(instance)
  configure_method = instance.method(:configure)

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

  return false if parameter_type.nil?

  return true if parameter_type == :key

  error_message = "Optional session parameter of configure is not a keyword argument (Type: #{parameter_type.inspect})"
  logger.error(tag: :handle) { error_message }
  raise ArgumentError, error_message
end

.loggerObject



55
56
57
# File 'lib/messaging/handle.rb', line 55

def self.logger
  @logger ||= Log.build(self)
end

Instance Method Details

#build(strict: nil, session: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/messaging/handle.rb', line 25

def build(strict: nil, session: nil)
  instance = new
  instance.strict = strict
  Log.configure(instance, attr_name: :handler_logger)

  if Build.configure_session?(instance)
    instance.configure(session: session)
  else
    instance.configure
  end

  instance
end