traveltime-api 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/traveltime_api.rb +13 -11
  2. metadata +2 -2
@@ -31,32 +31,30 @@ class TravelTimeAPI
31
31
 
32
32
  # Raised if API user made bad request.
33
33
  class BadRequest < RuntimeError
34
- # Server provided String code for this error.
35
- attr_reader :code
36
34
  # Server provided String explanation of error.
37
35
  attr_reader :details
38
36
 
39
- def initialize(code, details)
40
- @code = code
37
+ def initialize(details)
41
38
  @details = details
42
39
  end
43
40
 
44
41
  def to_s
45
- "TravelTimeAPI::BadRequest[#{@code}: #{details}]"
42
+ "TravelTimeAPI::BadRequest[#{details}]"
46
43
  end
47
44
  end
48
45
 
49
46
  # Raised if API server has encountered an error.
50
47
  class ServerError < RuntimeError
51
48
  # Human readable error message.
52
- attr_reader :error
49
+ attr_reader :error, :http_code
53
50
 
54
- def initialize(error)
51
+ def initialize(error, http_code)
55
52
  @error = error
53
+ @http_code = http_code
56
54
  end
57
55
 
58
56
  def to_s
59
- "TravelTimeAPI::ServerError[#{@error}]"
57
+ "TravelTimeAPI::ServerError[http code: #{@http_code} | #{@error}]"
60
58
  end
61
59
  end
62
60
 
@@ -235,9 +233,13 @@ private
235
233
  )
236
234
  JSON.parse(response)
237
235
  rescue RestClient::ExceptionWithResponse => e
238
- raise ServerError.new(
239
- "server error, http_status: #{e.http_code}, http_body: #{e.http_body}"
240
- )
236
+ if e.http_code == 400
237
+ raise BadRequest.new(e.http_body)
238
+ else
239
+ raise ServerError.new(
240
+ e.http_code, "server error, http_body: #{e.http_body}"
241
+ )
242
+ end
241
243
  rescue JSON::ParserError => e
242
244
  raise ServerError.new("Cannot parse server response as JSON: #{response}")
243
245
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traveltime-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-15 00:00:00.000000000 Z
13
+ date: 2014-03-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client