aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-03-15 17:18:09 +0100
committerLuc Donnet2018-03-23 17:16:43 +0100
commitc113edee0c5575d4078ccb8f0d349992860535d7 (patch)
tree208176723db02eefb56bc58884e34168afb8ec2d
parent02b2947632fbafc7bb637a21cc6ea089094fe31c (diff)
downloadchouette-core-c113edee0c5575d4078ccb8f0d349992860535d7.tar.bz2
Rename `RouteWayCostJSONSerializer` to `RouteWayCostUnitConverter`
Because we need to pass a Ruby hash to Rabl instead of a JSON string, get rid of our serialiser and instead turn it into a function that just converts the distance & time units. Fix a bug in the test that had the `'1-2'` key as a symbol instead of a string which was caused by a copy-paste from JSON and not being thorough enough in search-and-replace. Refs #6203
-rw-r--r--app/views/routes/costs.rabl2
-rw-r--r--lib/route_way_cost_unit_converter.rb (renamed from lib/route_way_cost_json_serializer.rb)6
-rw-r--r--spec/lib/route_way_cost_json_serializer_spec.rb31
-rw-r--r--spec/lib/route_way_cost_unit_converter_spec.rb29
4 files changed, 32 insertions, 36 deletions
diff --git a/app/views/routes/costs.rabl b/app/views/routes/costs.rabl
index 2c336fb51..1a1b14898 100644
--- a/app/views/routes/costs.rabl
+++ b/app/views/routes/costs.rabl
@@ -1,4 +1,4 @@
object @route
node :costs do
- RouteWayCostJSONSerializer.dump(@route.costs)
+ RouteWayCostUnitConverter.convert(@route.costs)
end
diff --git a/lib/route_way_cost_json_serializer.rb b/lib/route_way_cost_unit_converter.rb
index 20b3d6ee2..1aebbbb14 100644
--- a/lib/route_way_cost_json_serializer.rb
+++ b/lib/route_way_cost_unit_converter.rb
@@ -1,13 +1,11 @@
-class RouteWayCostJSONSerializer
- def self.dump(way_costs)
+class RouteWayCostUnitConverter
+ def self.convert(way_costs)
return if way_costs.nil?
way_costs.each do |_, costs|
costs['distance'] = self.meters_to_kilometers(costs['distance'])
costs['time'] = self.seconds_to_minutes(costs['time'])
end
-
- JSON.dump(way_costs)
end
private
diff --git a/spec/lib/route_way_cost_json_serializer_spec.rb b/spec/lib/route_way_cost_json_serializer_spec.rb
deleted file mode 100644
index 52cb21afc..000000000
--- a/spec/lib/route_way_cost_json_serializer_spec.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-RSpec.describe RouteWayCostJSONSerializer do
- describe ".dump" do
- it "converts distance from meters to km and time from seconds to minutes" do
- costs = {
- '1-2': {
- 'distance' => 35223,
- 'time' => 5604
- },
- '94435-97513' => {
- 'distance' => 35919,
- 'time' => 6174
- }
- }
-
- expect(
- RouteWayCostJSONSerializer.dump(costs)
- ).to eq(<<-JSON.delete(" \n"))
- {
- "1-2": {
- "distance": 35.223,
- "time": 93
- },
- "94435-97513": {
- "distance": 35.919,
- "time": 102
- }
- }
- JSON
- end
- end
-end
diff --git a/spec/lib/route_way_cost_unit_converter_spec.rb b/spec/lib/route_way_cost_unit_converter_spec.rb
new file mode 100644
index 000000000..33fb1d9aa
--- /dev/null
+++ b/spec/lib/route_way_cost_unit_converter_spec.rb
@@ -0,0 +1,29 @@
+RSpec.describe RouteWayCostUnitConverter do
+ describe ".convert" do
+ it "converts distance from meters to km and time from seconds to minutes" do
+ costs = {
+ '1-2' => {
+ 'distance' => 35223,
+ 'time' => 5604
+ },
+ '94435-97513' => {
+ 'distance' => 35919,
+ 'time' => 6174
+ }
+ }
+
+ expect(
+ RouteWayCostUnitConverter.convert(costs)
+ ).to eq({
+ '1-2' => {
+ 'distance' => 35.223,
+ 'time' => 93
+ },
+ '94435-97513' => {
+ 'distance' => 35.919,
+ 'time' => 102
+ }
+ })
+ end
+ end
+end