Sha256: 94395bb95661204dc4fd06c49b5106174ac77b71d48781836290910417aac235
Contents?: true
Size: 753 Bytes
Versions: 2
Compression:
Stored size: 753 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.respond_to?(:size) && obj.size != Float::INFINITY 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.2.1 | lib/lumberjack/formatter/structured_formatter.rb |
lumberjack-1.2.0 | lib/lumberjack/formatter/structured_formatter.rb |