diff options
| author | Teddy Wing | 2018-03-15 17:18:09 +0100 |
|---|---|---|
| committer | Luc Donnet | 2018-03-23 17:16:43 +0100 |
| commit | c113edee0c5575d4078ccb8f0d349992860535d7 (patch) | |
| tree | 208176723db02eefb56bc58884e34168afb8ec2d | |
| parent | 02b2947632fbafc7bb637a21cc6ea089094fe31c (diff) | |
| download | chouette-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.rabl | 2 | ||||
| -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.rb | 31 | ||||
| -rw-r--r-- | spec/lib/route_way_cost_unit_converter_spec.rb | 29 |
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 |
