diff options
| author | Teddy Wing | 2018-03-15 17:18:09 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2018-03-15 17:44:22 +0100 | 
| commit | 18bf033af20f883e92a4f05bbba5070d70fe9d90 (patch) | |
| tree | 2364e7b05c435e8e6f9668019cf8875554e43a97 | |
| parent | 7fb536325c19e837d10707e9adfc0d8bce5a3976 (diff) | |
| download | chouette-core-18bf033af20f883e92a4f05bbba5070d70fe9d90.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 | 
