aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTeddy Wing2018-05-04 12:49:06 +0200
committerTeddy Wing2018-05-04 12:54:25 +0200
commit9c442cd66c7d12266ba53e85949f775f6b842d2d (patch)
tree6b9f901eda5bee3c84b192a979eb856b826d1304 /lib
parentad49ad52ee8e7cfbf4dc3f1bc34c533e186100b9 (diff)
downloadchouette-core-9c442cd66c7d12266ba53e85949f775f6b842d2d.tar.bz2
Move `TomTom::Matrix::RemoteError` to`TomTom::Errors::MatrixRemoteError`6884-tomtom-matrix--handle-error-when-response-doesn,t-inclu
I previously tried to correct a circular dependency problem in a057276129b1f62b811743db3b8f867a05241ed3, but that didn't fix it (it was intermittent, and came back). After some wrangling, I've now deduced with some confidence that the problem comes from `RouteWayCostCalculator`, which used `TomTom::Matrix::RemoteError`. From the way it looks, this seems to mess up the Rails autoloader since `tom_tom.rb` will try to load the `Matrix` class from the `TomTom.matrix` call above. Or something. In an attempt to fix the circular dependency error for real this time, move the error class to a completely separate module from `Matrix`, and refer to this when we need to use the error class. Refs #6884
Diffstat (limited to 'lib')
-rw-r--r--lib/tom_tom/errors.rb4
-rw-r--r--lib/tom_tom/errors/matrix_remote_error.rb5
-rw-r--r--lib/tom_tom/matrix.rb9
-rw-r--r--lib/tom_tom/matrix/remote_error.rb5
4 files changed, 14 insertions, 9 deletions
diff --git a/lib/tom_tom/errors.rb b/lib/tom_tom/errors.rb
new file mode 100644
index 000000000..da3f2239c
--- /dev/null
+++ b/lib/tom_tom/errors.rb
@@ -0,0 +1,4 @@
+module TomTom
+ module Errors
+ end
+end
diff --git a/lib/tom_tom/errors/matrix_remote_error.rb b/lib/tom_tom/errors/matrix_remote_error.rb
new file mode 100644
index 000000000..b13767847
--- /dev/null
+++ b/lib/tom_tom/errors/matrix_remote_error.rb
@@ -0,0 +1,5 @@
+module TomTom
+ module Errors
+ class MatrixRemoteError < RuntimeError; end
+ end
+end
diff --git a/lib/tom_tom/matrix.rb b/lib/tom_tom/matrix.rb
index d0b476d84..96518f7cf 100644
--- a/lib/tom_tom/matrix.rb
+++ b/lib/tom_tom/matrix.rb
@@ -6,8 +6,8 @@ module TomTom
# Exceptions:
#
- # * This raises a `TomTom::Matrix::RemoteError` when the API responds with
- # an error.
+ # * This raises a `TomTom::Errors::MatrixRemoteError` when the API responds
+ # with an error.
def matrix(way_costs)
points_with_ids = points_from_way_costs(way_costs)
points = points_as_params(points_with_ids)
@@ -84,13 +84,14 @@ module TomTom
def check_for_error_response(response)
if response.status != 200
- raise RemoteError, "status: #{response.status}, body: #{response.body}"
+ raise TomTom::Errors::MatrixRemoteError,
+ "status: #{response.status}, body: #{response.body}"
end
json = JSON.parse(response.body)
if json.has_key?('error')
- raise RemoteError,
+ raise TomTom::Errors::MatrixRemoteError,
"status: #{response.status}, message: #{json['error']['description']}"
end
end
diff --git a/lib/tom_tom/matrix/remote_error.rb b/lib/tom_tom/matrix/remote_error.rb
deleted file mode 100644
index a5a7b3cdb..000000000
--- a/lib/tom_tom/matrix/remote_error.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-module TomTom
- class Matrix
- class RemoteError < RuntimeError; end
- end
-end