Class: OpenTracing::Instrumentation::Bunny::PublishOperationNameBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/opentracing/instrumentation/bunny/publish_operation_name_builder.rb

Overview

PublishOperationNameBuilder build publish command name from exchange and publish options

Constant Summary collapse

DEFAULT_OPERATION_NAME_PATTERN =
'bunny_publish(' \
  'routing_key=%<routing_key>s, ' \
  'exchange=%<exchange>s' \
')'

Instance Method Summary collapse

Constructor Details

#initialize(routing_key_sanitazer: RegexpRoutingKeySanitazer.new, operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN) ⇒ PublishOperationNameBuilder

Returns a new instance of PublishOperationNameBuilder.

Parameters:

  • routing_key_sanitazer (RegexpRoutingKeySanitazer) (defaults to: RegexpRoutingKeySanitazer.new)
  • operation_name_pattern (String) (defaults to: DEFAULT_OPERATION_NAME_PATTERN)


17
18
19
20
21
22
23
# File 'lib/opentracing/instrumentation/bunny/publish_operation_name_builder.rb', line 17

def initialize(
  routing_key_sanitazer: RegexpRoutingKeySanitazer.new,
  operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN
)
  @routing_key_sanitazer = routing_key_sanitazer
  @operation_name_pattern = operation_name_pattern
end

Instance Method Details

#build_operation_name(exchange, opts) ⇒ String

Parameters:

  • exchange (Bunny::Exchange)
  • opts (Hash<Symbol, Object>)

Options Hash (opts):

  • :routing_key (String)

Returns:

  • (String)


29
30
31
32
# File 'lib/opentracing/instrumentation/bunny/publish_operation_name_builder.rb', line 29

def build_operation_name(exchange, opts)
  format_args = build_format_args(exchange, opts)
  format(@operation_name_pattern, **format_args)
end