Class: Julewire::Core::Destinations::Collection
- Inherits:
-
Object
- Object
- Julewire::Core::Destinations::Collection
- Defined in:
- lib/julewire/core/destinations/collection.rb
Class Method Summary collapse
Instance Method Summary collapse
- #after_fork! ⇒ Object
- #close(timeout: nil, skip_resource_identities: nil) ⇒ Object
- #emit(record) ⇒ Object
- #empty? ⇒ Boolean
- #flush(timeout: nil) ⇒ Object
- #health ⇒ Object
-
#initialize(destinations, on_drop:, on_failure:) ⇒ Collection
constructor
A new instance of Collection.
- #lifecycle_resource_identities ⇒ Object
Constructor Details
#initialize(destinations, on_drop:, on_failure:) ⇒ Collection
Returns a new instance of Collection.
8 9 10 11 12 |
# File 'lib/julewire/core/destinations/collection.rb', line 8 def initialize(destinations, on_drop:, on_failure:) @destinations = destinations.freeze @on_drop = on_drop @on_failure = on_failure end |
Class Method Details
.build(configuration:, defaults:, on_drop:, on_failure:) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/julewire/core/destinations/collection.rb', line 15 def build(configuration:, defaults:, on_drop:, on_failure:) new( validate_destinations(configuration.destinations.build(defaults: defaults)), on_drop: on_drop, on_failure: on_failure ) end |
Instance Method Details
#after_fork! ⇒ Object
40 41 42 43 44 45 |
# File 'lib/julewire/core/destinations/collection.rb', line 40 def after_fork! @destinations.each do |destination| call_destination_after_fork(destination) end self end |
#close(timeout: nil, skip_resource_identities: nil) ⇒ Object
51 52 53 |
# File 'lib/julewire/core/destinations/collection.rb', line 51 def close(timeout: nil, skip_resource_identities: nil) call_lifecycle(:close, timeout: timeout, skip_resource_identities: skip_resource_identities) end |
#emit(record) ⇒ Object
34 35 36 37 38 |
# File 'lib/julewire/core/destinations/collection.rb', line 34 def emit(record) @destinations.each do |destination| emit_to_destination(destination, record) end end |
#empty? ⇒ Boolean
32 |
# File 'lib/julewire/core/destinations/collection.rb', line 32 def empty? = @destinations.empty? |
#flush(timeout: nil) ⇒ Object
47 48 49 |
# File 'lib/julewire/core/destinations/collection.rb', line 47 def flush(timeout: nil) call_lifecycle(:flush, timeout: timeout) end |
#health ⇒ Object
61 62 63 |
# File 'lib/julewire/core/destinations/collection.rb', line 61 def health @destinations.to_h { [destination_name(it), destination_health(it)] } end |
#lifecycle_resource_identities ⇒ Object
55 56 57 58 59 |
# File 'lib/julewire/core/destinations/collection.rb', line 55 def lifecycle_resource_identities @destinations.each_with_object({}.compare_by_identity) do |destination, identities| identities[resource_identity(destination)] = true end end |