Class: Julewire::Core::Destinations::Definition
- Inherits:
-
Object
- Object
- Julewire::Core::Destinations::Definition
- Defined in:
- lib/julewire/core/destinations/definition.rb
Constant Summary collapse
- OPTION_KEYS =
%i[ close_output encoder formatter max_record_bytes name on_drop on_failure output processors ].freeze
Instance Attribute Summary collapse
- #kind ⇒ Object readonly
- #name ⇒ Object readonly
Instance Method Summary collapse
- #build(defaults:, output_identities: nil) ⇒ Object
- #copy ⇒ Object
-
#initialize(kind, **options) ⇒ Definition
constructor
A new instance of Definition.
Constructor Details
#initialize(kind, **options) ⇒ Definition
Returns a new instance of Definition.
24 25 26 27 28 29 |
# File 'lib/julewire/core/destinations/definition.rb', line 24 def initialize(kind, **) @kind = Destinations.normalize_name(kind) () @name = Destinations.normalize_name(.fetch(:name, @kind)) @options = .freeze end |
Instance Attribute Details
#kind ⇒ Object (readonly)
22 23 24 |
# File 'lib/julewire/core/destinations/definition.rb', line 22 def kind @kind end |
#name ⇒ Object (readonly)
22 23 24 |
# File 'lib/julewire/core/destinations/definition.rb', line 22 def name @name end |
Instance Method Details
#build(defaults:, output_identities: nil) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/julewire/core/destinations/definition.rb', line 31 def build(defaults:, output_identities: nil) return build_factory_destination(defaults, output_identities: output_identities) if factory output = resolve(:output, defaults) reject_shared_output!(output, output_identities) if output_identities && !output.nil? Destination.new( name: name, close_output: resolve(:close_output, defaults), encoder: resolve(:encoder, defaults), formatter: resolve(:formatter, defaults), max_record_bytes: resolve(:max_record_bytes, defaults), on_drop: resolve(:on_drop, defaults), on_failure: resolve(:on_failure, defaults), output: output, error_backtrace_lines: defaults.fetch(:error_backtrace_lines), processors: resolve(:processors, defaults) ) end |
#copy ⇒ Object
51 52 53 |
# File 'lib/julewire/core/destinations/definition.rb', line 51 def copy self.class.new(kind, **@options) end |