app/lib/route_way_cost_unit_converter.rb
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
end
# Round to 2 decimal places to appease JavaScript validation
def self.meters_to_kilometers(num)
return 0 unless num
snap_to_one(num / 1000.0).to_i
end
def self.seconds_to_minutes(num)
return 0 unless num
snap_to_one(num / 60.0).to_i
end
private
def self.snap_to_one(decimal)
return 1 if decimal > 0 && decimal <= 1
decimal
end
end