Sha256: 2697de7c6cde740606bb20707307ad6799e08dda997f8820a691a46e4d266a71
Contents?: true
Size: 1.49 KB
Versions: 4
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module Stenotype module Adapters # # An adapter implementing method {#publish} to send data to STDOUT # # @example # class SomeClassWithEvents # def method_emitting_enent # result_of_calculations = collect_some_data # # This will print the data to STDOUT by default # stdout_adapter.publish(result_of_calculation, additional: :data, more: :data) # result_of_calculations # end # # def stdout_adapter # Stenotype::Adapters::StdoutAdapter.new # end # end # class StdoutAdapter < Base # # @param event_data {Hash} The data to be published to STDOUT # # @example Publishing to default client (STDOUT) # adapter = Stenotype::Adapters::StdoutAdapter.new # adapter.publish({ event: :data }, { additional: :data }) # # @example Publishing to custom client (STDERR) # adapter = Stenotype::Adapters::StdoutAdapter.new(client: STDERR) # adapter.publish({ event: :data }, { additional: :data }) # def publish(event_data, **additional_attrs) client.info("[Stenotype::Event] emitted with the following attributes") do { **event_data, **additional_attrs, } end end # # Does nothing # def flush! # noop end private def client @client ||= Logger.new(STDOUT) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems