class OpenTracing::Instrumentation::Bunny::PublishOperationNameBuilder

PublishOperationNameBuilder build publish command name from exchange and publish options

Constants

DEFAULT_OPERATION_NAME_PATTERN

Public Class Methods

new( routing_key_sanitazer: RegexpRoutingKeySanitazer.new, operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN ) click to toggle source

@param routing_key_sanitazer [RegexpRoutingKeySanitazer] @param operation_name_pattern [String]

# 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

Public Instance Methods

build_operation_name(exchange, opts) click to toggle source

@param exchange [Bunny::Exchange] @param opts [Hash<Symbol, Object>] @option opts [String] :routing_key @return [String]

# 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

Private Instance Methods

build_format_args(exchange, opts) click to toggle source
# File lib/opentracing/instrumentation/bunny/publish_operation_name_builder.rb, line 36
def build_format_args(exchange, opts)
  opts
    .merge(exchange: exchange.name)
    .merge(routing_key: sanitaze_routing_key(opts[:routing_key]))
end
sanitaze_routing_key(routing_key) click to toggle source
# File lib/opentracing/instrumentation/bunny/publish_operation_name_builder.rb, line 42
def sanitaze_routing_key(routing_key)
  return if routing_key.nil?

  @routing_key_sanitazer.sanitaze_routing_key(routing_key)
end