class Swoop::Formatters::ColoredKeyValue

Public Instance Methods

call(data) click to toggle source
# File lib/swoop/formatters/colored_key_value.rb, line 5
def call(data)
  fields = fields_to_display(data)
  event = fields.map { |key| format(key, data[key]) }
  event.join(' ')
end
colorize(value) click to toggle source
# File lib/swoop/formatters/colored_key_value.rb, line 24
def colorize(value)
  if value.is_a?(Numeric) || value.to_s.match(/\A[\d\.]+\z/)
    value = "#{ value }".magenta.bold
  elsif value.is_a?(String)
    value = "#{ value }".green.bold
  elsif value.is_a?(Symbol)
    value = "#{ value }".blue.bold
  elsif value.is_a?(Hash)
    value = value.to_json.black.bold
  end
end
fields_to_display(data) click to toggle source
# File lib/swoop/formatters/colored_key_value.rb, line 11
def fields_to_display(data)
  data.keys
end
format(key, value) click to toggle source
# File lib/swoop/formatters/colored_key_value.rb, line 15
def format(key, value)
  if key == :error
    value = "'#{value}'"
  else
    value = Kernel.format('%.2f', value) if value.is_a? Float
  end
  return Swoop.colorize? ? "#{ key.to_s.yellow }=#{ colorize(value) }" : "#{ key }=#{ value }"
end