Class: Swoop::Formatters::ColoredKeyValue

Inherits:
Object
  • Object
show all
Defined in:
lib/swoop/formatters/colored_key_value.rb

Instance Method Summary collapse

Instance Method Details

#call(data) ⇒ Object



5
6
7
8
9
# 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) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# 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) ⇒ Object



11
12
13
# File 'lib/swoop/formatters/colored_key_value.rb', line 11

def fields_to_display(data)
  data.keys
end

#format(key, value) ⇒ Object



15
16
17
18
19
20
21
22
# 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