Class: Result

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

Overview

Retrieve messages for complex process #events store each state as hash, with keys :message and :type

Example

result=Result.new
result.info("Something happened")
result.success? # returns true
result.error("Something bad happened")
result.success? # returns false
result.message # return 'info: Something happened\nerror:Something bad happened'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeResult

Returns a new instance of Result.



41
42
43
44
# File 'lib/result.rb', line 41

def initialize()
  #@status=:ok
  @events=[]
end

Instance Attribute Details

#eventsObject (readonly)

Returns the value of attribute events.



40
41
42
# File 'lib/result.rb', line 40

def events
  @events
end

Instance Method Details

#add_result(new_result) ⇒ Object

Permite agregar los eventos de otro resultado



68
69
70
# File 'lib/result.rb', line 68

def add_result(new_result)
  @events=@events+new_result.events
end

#countObject

Number of events



46
47
48
# File 'lib/result.rb', line 46

def count
  @events.count
end

#error(message) ⇒ Object



55
56
57
# File 'lib/result.rb', line 55

def error(message)
  @events.push({type: :error, message: message })
end

#info(message) ⇒ Object



49
50
51
# File 'lib/result.rb', line 49

def info(message)
  @events.push({type: :info, message: message })
end

#messageObject



64
65
66
# File 'lib/result.rb', line 64

def message
  @events.map {|v| "#{v[:type]}: #{v[:message]}"}.join("\n")
end

#success(message) ⇒ Object



52
53
54
# File 'lib/result.rb', line 52

def success(message)
  @events.push({type: :success, message: message })
end

#success?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/result.rb', line 61

def success?
  !@events.any? {|v| v[:type]==:error}
end

#warning(message) ⇒ Object



58
59
60
# File 'lib/result.rb', line 58

def warning(message)
  @events.push({type: :warning, message: message })
end