Skip to content

Commit

Permalink
Clean up error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
mattyoho committed Apr 17, 2011
1 parent 2a31a4a commit b64a16f
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions lib/tnetstring.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def self.parse(tnetstring)
when '}'
parse_dictionary(payload)
when '~'
assert payload.length == 0, "Payload must be 0 length for null."
assert payload.length == 0, "Payload must be 0 length for null"
nil
when '!'
parse_boolean(payload)
Expand All @@ -24,17 +24,17 @@ def self.parse(tnetstring)
end

def self.parse_payload(data) # :nodoc:
assert data, "Invalid data to parse, it's empty."
assert data, "Invalid data to parse; it's empty"
length, extra = data.split(':', 2)
length = length.to_i
assert length <= 999_999_999, "Data is longer than the specification allows"
assert length >= 0, "Data length cannot be negative!"
assert length >= 0, "Data length cannot be negative"

payload, extra = extra[0, length], extra[length..-1]
assert extra, "No payload type: %s, %s" % [payload, extra]
assert extra, "No payload type: #{payload}, #{extra}"
payload_type, remain = extra[0,1], extra[1..-1]

assert payload.length == length, "Data is wrong length %d vs %d" % [length, payload.length]
assert payload.length == length, "Data is wrong length: #{length} expected but was #{payload.length}"
[payload, payload_type, remain]
end

Expand Down Expand Up @@ -66,9 +66,10 @@ def self.parse_dictionary(data) # :nodoc:

def self.parse_pair(data) # :nodoc:
key, extra = parse(data)
assert extra, "Unbalanced dictionary store."
assert key.kind_of?(String), "Dictionary keys must be Strings"
assert extra, "Unbalanced dictionary store"
value, extra = parse(extra)
assert value, "Got an invalid value, null not allowed."
assert value, "Got an invalid value, null not allowed"

[key, value, extra]
end
Expand Down

0 comments on commit b64a16f

Please sign in to comment.