class Logiku::Formatters::KeyValue

Attributes

filter[R]

Public Class Methods

new(filter = nil) click to toggle source
# File lib/logiku/formatters/key_value.rb, line 5
def initialize(filter = nil)
  @filter = filter
end

Public Instance Methods

call(data) click to toggle source
# File lib/logiku/formatters/key_value.rb, line 9
def call(data)
  message = "#{data.map { |k, v| format k, v }.join(" ")}\n"
  message = filter.call(message) unless filter.nil?
  message
end

Private Instance Methods

format(k, v) click to toggle source
# File lib/logiku/formatters/key_value.rb, line 17
def format(k, v)
  %Q{"#{k}"="#{format_value v}"}
end
format_value(v) click to toggle source
# File lib/logiku/formatters/key_value.rb, line 21
def format_value(v)
  case v
  when String
    v.gsub(/["\n]/, { '"' => '\"', "\n" => " " })
  when Hash, Array
    v.inspect.gsub('"') { %q|\"| }
  when Time
    v.utc.iso8601(6)
  else
    v.inspect
  end
end