Class: Julewire::Core::Configuration
- Inherits:
-
Object
- Object
- Julewire::Core::Configuration
- Defined in:
- lib/julewire/core/configuration.rb
Constant Summary collapse
- ATTRIBUTES =
%i[ destinations emit_non_standard_exception_summaries error_backtrace_lines labels level on_drop on_failure pipeline_close_timeout processors ].freeze
- REGISTRY_ATTRIBUTES =
%i[destinations labels processors].freeze
- SCALAR_ATTRIBUTES =
(ATTRIBUTES - REGISTRY_ATTRIBUTES).freeze
Instance Method Summary collapse
- #build_pipeline(invalid_severity_reporter: Diagnostics::InvalidSeverityReporter.counter) ⇒ Object
- #copy ⇒ Object
- #freeze ⇒ Object
-
#initialize(**options) ⇒ Configuration
constructor
A new instance of Configuration.
- #snapshot ⇒ Object
- #validate! ⇒ Object
Constructor Details
#initialize(**options) ⇒ Configuration
Returns a new instance of Configuration.
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/julewire/core/configuration.rb', line 23 def initialize(**) () @destinations = .fetch(:destinations) { Destinations::Registry.new } @emit_non_standard_exception_summaries = .fetch(:emit_non_standard_exception_summaries, false) @error_backtrace_lines = .fetch(:error_backtrace_lines, Core::MAX_BACKTRACE_LINES) @labels = .fetch(:labels) { Fields::StaticLabels.new } @level = .fetch(:level, :debug) @on_drop = .fetch(:on_drop, nil) @on_failure = .fetch(:on_failure, nil) @pipeline_close_timeout = .fetch(:pipeline_close_timeout, 1) @processors = .fetch(:processors) { Processing::ProcessorRegistry.new } end |
Instance Method Details
#build_pipeline(invalid_severity_reporter: Diagnostics::InvalidSeverityReporter.counter) ⇒ Object
62 63 64 |
# File 'lib/julewire/core/configuration.rb', line 62 def build_pipeline(invalid_severity_reporter: Diagnostics::InvalidSeverityReporter.counter) Processing::Pipeline.new(configuration: self, invalid_severity_reporter: invalid_severity_reporter) end |
#copy ⇒ Object
58 59 60 |
# File 'lib/julewire/core/configuration.rb', line 58 def copy self.class.new(**) end |
#freeze ⇒ Object
66 67 68 69 70 71 |
# File 'lib/julewire/core/configuration.rb', line 66 def freeze destinations.freeze labels.freeze processors.freeze super end |
#snapshot ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/julewire/core/configuration.rb', line 50 def snapshot validate! copy.tap do |configuration| configuration.level = Records::Severity.normalize(level) configuration.freeze end end |
#validate! ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/julewire/core/configuration.rb', line 36 def validate! validate_contracts! Validation.validate_non_negative_integer!( error_backtrace_lines, name: :error_backtrace_lines ) Validation.validate_timeout!( pipeline_close_timeout, name: :pipeline_close_timeout ) Records::Severity.normalize(level) self end |