Sha256: c69c1cc995fdc068b806020d5fedeed767d417750d90e381f46b1d310aa72606
Contents?: true
Size: 704 Bytes
Versions: 2
Compression:
Stored size: 704 Bytes
Contents
# frozen_string_literals: true require "set" module Lumberjack class Formatter # Dereference arrays and hashes and recursively call formatters on each element. class StructuredFormatter def initialize(formatter = nil) @formatter = formatter end def call(obj) if obj.is_a?(Hash) hash = {} references ||= Set.new obj.each do |name, value| hash[name.to_s] = call(value) end hash elsif obj.is_a?(Enumerable) obj.collect { |element| call(element) } elsif @formatter @formatter.format(obj) else obj end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lumberjack-1.1.1 | lib/lumberjack/formatter/structured_formatter.rb |
lumberjack-1.1.0 | lib/lumberjack/formatter/structured_formatter.rb |