class Bugsnag::Breadcrumbs::Validator

Validates a given breadcrumb before it is stored

Public Class Methods

new(configuration) click to toggle source

@param configuration [Bugsnag::Configuration] The current configuration

# File lib/bugsnag/breadcrumbs/validator.rb, line 7
def initialize(configuration)
  @configuration = configuration
end

Public Instance Methods

validate(breadcrumb) click to toggle source

Validates a given breadcrumb.

@param breadcrumb [Bugsnag::Breadcrumbs::Breadcrumb] the breadcrumb to be validated

# File lib/bugsnag/breadcrumbs/validator.rb, line 15
def validate(breadcrumb)
  # Check type is valid, set to manual otherwise
  unless Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES.include?(breadcrumb.type)
    @configuration.debug("Invalid type: #{breadcrumb.type} for breadcrumb: #{breadcrumb.name}, defaulting to #{Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE}")
    breadcrumb.type = Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE
  end

  # If auto is true, check type is in enabled_automatic_breadcrumb_types
  return unless breadcrumb.auto && !@configuration.enabled_automatic_breadcrumb_types.include?(breadcrumb.type)

  @configuration.debug("Automatic breadcrumb of type #{breadcrumb.type} ignored: #{breadcrumb.name}")
  breadcrumb.ignore!
end