Routing
Provides a generic interface for routing services that can by used to calculate directions between geolocations.
It aims to make parsing and use-case specific data handling easy trough an extendable middleware stack (think of rack middleware for your routing service).
Usage
start = Routing::GeoPoint.new(:lat => 49, :lng => 9)
destination = Routing::GeoPoint.new(:lat => 48, :lng => 8.9)
route = Routing.new.calculate(start, destination)
Middleware
routing = Routing.new do |r|
r.use MyMiddleware.new
r.use MyRoutingCache.new
end
route = routing.calculate(start, destination)
Custom Adapters
routing = Routing.new(MyAdapter.new)
route = routing.calculate(start, destination)
Installation
Add this line to your application's Gemfile:
gem 'routing'
And then execute:
$ bundle
Or install it yourself as:
$ gem install routing
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request