diff options
Diffstat (limited to 'lib/tom_tom')
| -rw-r--r-- | lib/tom_tom/matrix.rb | 12 | ||||
| -rw-r--r-- | lib/tom_tom/matrix/request_json_serializer.rb | 25 | 
2 files changed, 33 insertions, 4 deletions
| diff --git a/lib/tom_tom/matrix.rb b/lib/tom_tom/matrix.rb index 49c000148..71eb6c75d 100644 --- a/lib/tom_tom/matrix.rb +++ b/lib/tom_tom/matrix.rb @@ -15,10 +15,7 @@ module TomTom          req.params[:routeType] = 'shortest'          req.params[:travelMode] = 'bus' -        req.body = { -          origins: points, -          destinations: points -        }.to_json +        req.body = build_request_body(points)        end        extract_costs_to_way_costs!( @@ -69,6 +66,13 @@ module TomTom        end      end +    def build_request_body(points) +      RequestJSONSerializer.dump({ +        origins: points, +        destinations: points +      }) +    end +      def extract_costs_to_way_costs!(way_costs, points, matrix_json)        way_costs = [] diff --git a/lib/tom_tom/matrix/request_json_serializer.rb b/lib/tom_tom/matrix/request_json_serializer.rb new file mode 100644 index 000000000..f4d12e482 --- /dev/null +++ b/lib/tom_tom/matrix/request_json_serializer.rb @@ -0,0 +1,25 @@ +module TomTom +  class Matrix +    class RequestJSONSerializer +      def self.dump(hash) +        hash[:origins].map! do |point| +          point_to_f(point) +        end +        hash[:destinations].map! do |point| +          point_to_f(point) +        end + +        JSON.dump(hash) +      end + +      private + +      def self.point_to_f(point) +        point[:point][:latitude] = point[:point][:latitude].to_f +        point[:point][:longitude] = point[:point][:longitude].to_f + +        point +      end +    end +  end +end | 
