class RapidsRivers::PacketProblems
Understands issues about a particular JSON-formatted Packet
Public Class Methods
new(original_json)
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 8 def initialize(original_json) @json_string = original_json @informational_messages, @warnings, @errors, @severe_errors = [], [], [], [] end
Public Instance Methods
error(explanation)
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 29 def error(explanation) @errors << explanation end
errors?()
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 13 def errors? @errors.any? || @severe_errors.any? end
information(explanation)
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 21 def information(explanation) @informational_messages << explanation end
messages?()
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 17 def messages? errors? || @warnings.any? || @informational_messages.any? end
severe_error(explanation)
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 33 def severe_error(explanation) @severe_errors << explanation end
to_s()
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 37 def to_s return("No errors detected in JSON:\n\t" + @json_string) if !messages? results = "Errors and/or messages exist. Original JSON string is:\n\t" results += @json_string results += messages("Severe errors", @severe_errors) results += messages("Errors", @errors) results += messages("Warnings", @warnings) results += messages("Information", @informational_messages) results += "\n" end
warning(explanation)
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 25 def warning(explanation) @warnings << explanation end
Private Instance Methods
messages(label, messages)
click to toggle source
# File lib/rapids_rivers/packet_problems.rb, line 50 def messages(label, messages) return "" if messages.empty? results = "\n" results += ' '*5 results += label results += ": " results += messages.size.to_s results += "\n\t" results += messages.join("\n\t") end