Class: Bugsnag::Breadcrumbs::Validator
- Inherits:
-
Object
- Object
- Bugsnag::Breadcrumbs::Validator
- Defined in:
- lib/bugsnag/breadcrumbs/validator.rb
Overview
Validates a given breadcrumb before it is stored
Instance Method Summary collapse
-
#initialize(configuration) ⇒ Validator
constructor
A new instance of Validator.
-
#validate(breadcrumb) ⇒ Object
Validates a given breadcrumb.
Constructor Details
#initialize(configuration) ⇒ Validator
Returns a new instance of Validator.
9 10 11 |
# File 'lib/bugsnag/breadcrumbs/validator.rb', line 9 def initialize(configuration) @configuration = configuration end |
Instance Method Details
#validate(breadcrumb) ⇒ Object
Validates a given breadcrumb.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/bugsnag/breadcrumbs/validator.rb', line 17 def validate() # Check name length if .name.size > Bugsnag::Breadcrumbs::MAX_NAME_LENGTH @configuration.debug("Breadcrumb name trimmed to length #{Bugsnag::Breadcrumbs::MAX_NAME_LENGTH}. Original name: #{.name}") .name = .name.slice(0...Bugsnag::Breadcrumbs::MAX_NAME_LENGTH) end # Check meta_data hash doesn't contain complex values . = ..select do |k, v| if (v) true else @configuration.debug("Breadcrumb #{.name} meta_data #{k}:#{v.class} has been dropped for having an invalid data type") false end end # Check type is valid, set to manual otherwise unless Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES.include?(.type) @configuration.debug("Invalid type: #{.type} for breadcrumb: #{.name}, defaulting to #{Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE}") .type = Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE end # If auto is true, check type is in enabled_automatic_breadcrumb_types return unless .auto && !@configuration..include?(.type) @configuration.debug("Automatic breadcrumb of type #{.type} ignored: #{.name}") .ignore! end |