Sha256: 7d19929ae994122b53b149d3f0923ce4e989a9a2e8f6e5cf56811cb01a91ea0a
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 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 {Sting} 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 "MESSAGE BODY: #{event_data}, MESSAGE ATTRIBUTES #{additional_attrs.to_json}" end end # # Does nothing # def flush! # noop end private def client @client ||= Logger.new(STDOUT) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stenotype-0.1.10 | lib/stenotype/adapters/stdout_adapter.rb |
stenotype-0.1.9 | lib/stenotype/adapters/stdout_adapter.rb |