Module: Observed::Reporter::ReportFormatting
- Includes:
- Configurable
- Included in:
- BuiltinPlugins::File, BuiltinPlugins::Stdout
- Defined in:
- lib/observed/reporter/report_formatting.rb
Overview
The module to equip an observer with a ‘formatter` to format the data being reported. The `formatter` is just a proc and is able to be configured via an attribute.
class YourObserver < Observed::Reporter
include Observed::Reporter::Configurable
include Observed::Reporter::ReportFormatting
attribute :format, default: -> tag, time, data { "#{Time.at(time)} #{tag} #{data}" }
def report(tag, time, data)
formatted_data = format_report(tag, time, data)
# The output of your choice
end
end
observer = YourObserver.new(format: -> tag, time, data { “The data being reported: #tag #time #data” }) observer.report(‘test’, Time.now, 1) #=> outputs “#Time.at(Time.now) test :data=>1”
Instance Method Summary collapse
-
#format_report(tag, time, data) ⇒ Object
Format the data being reported.
Methods included from Configurable
#configure, #get_attribute_value, #has_attribute_value?, included, #initialize
Instance Method Details
#format_report(tag, time, data) ⇒ Object
Format the data being reported. The data includes 3 parameters: ‘tag`, `time` and `data`.
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/observed/reporter/report_formatting.rb', line 43 def format_report(tag, time, data) num_params = format.parameters.size case num_params when 3 format.call(tag, time, data) when 4 format.call(tag, time, data, Observed::Hash::Fetcher.new(data)) else fail "Number of parameters for the function for the key :format must be 3 or 4, but was #{num_params}(#{format.parameters}" end end |