Proximity
Proximity
is a Rack::Proxy
router that uses
Journey
for routing. Journey
is
vendored into ActionPack
as of Rails
4.
Usage
- Create your own subclass of
Rack::Proxy
. -
include Proximity
into that class. - Define
rewrite_env
andrewrite_response
as normal.Proximity
overridesRack::Proxy
's call so yourenv['HTTP_HOST']
andenv['PATH_INFO']
will be changed before your call torewrite_env
. - If you override
call
, ensure you call super. - Create your proxy routes in a
proxies.rb
file and require it in your application.
Example
# my_proxy.rb
class MyProxy < Rack::Proxy
include Proximity
end
# proxies.rb
MyProxy.routes.draw do
route 'example' => 'example.com/api' do
proxy 'active' => 'accounts/active'
proxy 'accounts' => same, formats %w[json csv]
proxy 'accounts/:account_id' => same
proxy 'crazy/:id/:account_id' => 'fluffy/kitties/:id-:account_id'
end
end
Installation
Add this line to your application's Gemfile:
gem 'proximity'
And then execute:
$ bundle
Or install it yourself as:
$ gem install proximity
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request