Class: Kapnismology::BaseResult

Inherits:
Object
  • Object
show all
Defined in:
lib/kapnismology/result.rb

Overview

This is the base class for all types of results. It is useful to be able to test if the object is of a correct result type. It also have methods to add information and serialize it.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



6
7
8
# File 'lib/kapnismology/result.rb', line 6

def data
  @data
end

#debug_messagesObject (readonly)

Returns the value of attribute debug_messages.



6
7
8
# File 'lib/kapnismology/result.rb', line 6

def debug_messages
  @debug_messages
end

#durationObject (readonly)

Returns the value of attribute duration.



6
7
8
# File 'lib/kapnismology/result.rb', line 6

def duration
  @duration
end

#messageObject (readonly)

Returns the value of attribute message.



6
7
8
# File 'lib/kapnismology/result.rb', line 6

def message
  @message
end

Instance Method Details

#add_debug_messages(messages) ⇒ Object



20
21
22
23
# File 'lib/kapnismology/result.rb', line 20

def add_debug_messages(messages)
  @debug_messages = (messages || []).compact.flatten
  self
end

#passed?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/kapnismology/result.rb', line 25

def passed?
  !!@passed
end

#record_duration(start_time) ⇒ Object



29
30
31
# File 'lib/kapnismology/result.rb', line 29

def record_duration(start_time)
  @duration = ((Time.now - start_time) * 1000).floor
end

#to_hashObject



8
9
10
# File 'lib/kapnismology/result.rb', line 8

def to_hash
  { passed: passed?, data: @data, message: @message, debug_messages: @debug_messages, duration: @duration }
end

#to_s(name) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/kapnismology/result.rb', line 12

def to_s(name)
  <<~EOS
    #{format_passed(passed?)}: #{name}
    #{format_duration(@duration)}#{format_debug_messages(@debug_messages)}#{Terminal.bold(@message)}
       #{@data}
  EOS
end