class Airbrake::Filters::DependencyFilter

Attaches loaded dependencies to the notice object.

@api private @since v2.10.0

Public Class Methods

new() click to toggle source
# File lib/airbrake-ruby/filters/dependency_filter.rb, line 8
def initialize
  @weight = 117
end

Public Instance Methods

call(notice) click to toggle source

@macro call_filter

# File lib/airbrake-ruby/filters/dependency_filter.rb, line 13
def call(notice)
  deps = {}
  Gem.loaded_specs.map.with_object(deps) do |(name, spec), h|
    h[name] = "#{spec.version}#{git_version(spec)}"
  end

  notice[:context][:versions] = {} unless notice[:context].key?(:versions)
  notice[:context][:versions][:dependencies] = deps
end

Private Instance Methods

git_version(spec) click to toggle source
# File lib/airbrake-ruby/filters/dependency_filter.rb, line 25
def git_version(spec)
  return unless spec.respond_to?(:git_version) || spec.git_version
  spec.git_version.to_s
end