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)


46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/messaging/handle.rb', line 46

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})"
  handler_logger.error(tag: :handle) { error_message }
  raise ArgumentError, error_message
end

.handler_loggerObject



62
63
64
# File 'lib/messaging/handle.rb', line 62

def self.handler_logger
  @handler_logger ||= Log.get(self)
end

Instance Method Details

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



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/messaging/handle.rb', line 29

def build(strict: nil, session: nil, settings: nil)
  instance = new
  instance.strict = strict

  if not settings.nil?
    settings.set(instance)
  end

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

  instance
end