Sha256: 291ba06c1c1e21433a097a31065ab3a6960b7d60f1cd89d4e10be125659d5dc2

Contents?: true

Size: 636 Bytes

Versions: 5

Compression:

Stored size: 636 Bytes

Contents

# frozen_string_literal: true

module InstrumentAllTheThings
  Context = Struct.new(:method_name, :instance, :tags, keyword_init: true) do
    def stats_name(klass_or_instance)
      @stats_name ||= [
        class_name(klass_or_instance),
        (instance ? 'instance' : 'class') + '_methods',
        method_name,
      ].join('.')
    end

    def trace_name(klass_or_instance)
      @trace_name ||= "#{class_name(klass_or_instance)}#{instance ? '.' : '#'}#{method_name}"
    end

    private

    def class_name(klass_or_instance)
      klass_or_instance.is_a?(Class) ? klass_or_instance.to_s : klass_or_instance
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
instrument_all_the_things-1.2.0 lib/instrument_all_the_things/context.rb
instrument_all_the_things-1.1.1 lib/instrument_all_the_things/context.rb
instrument_all_the_things-1.1.0 lib/instrument_all_the_things/context.rb
instrument_all_the_things-1.0.4 lib/instrument_all_the_things/context.rb
instrument_all_the_things-1.0.3 lib/instrument_all_the_things/context.rb