ForwardTo
ForwardTo provides a #forward_to method that can be used to forward methods to a member object. It resembels the rails #delegate method but with a different syntax
Installation
Add this line to your application's Gemfile:
gem 'forward_to'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install forward_to
Usage
You will typically include the ForwardTo module globally to have #forward_to available everywhere:
require 'forward_to'
include ForwardTo
class A
forward_to :@implementation, :size, :[], :[]=
def initialize() @implementation = [] end
end
The first argument to #forward_to is the target object. It can be a member method or an instance variable but in both cases it has to be specified as a Symbol. The rest of the arguments are names of the member methods (Symbol) that will be forwarded to the target. Using the definitions above it is possible to do
a = A.new
puts a.size # => 0
a[0] = 1
puts a[0] # => 1
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/clrgit/forward_to.