Extended maintenance of Ruby versions 1.8.7 and 1.9.2 will end on July 31, 2014. Read more

In Files

  • forwardable.rb

Class/Module Index [+]

Quicksearch

SingleForwardable

Usage of The SingleForwardable is like Fowadable module.

Public Instance Methods

def_delegator(accessor, method, ali = method) click to toggle source
def_delegators(accessor, *methods) click to toggle source
def_single_delegator(accessor, method, ali = method) click to toggle source

Defines a method method which delegates to obj (i.e. it calls the method of the same name in obj). If new_name is provided, it is used as the name for the delegate method.

 
               # File forwardable.rb, line 248
def def_single_delegator(accessor, method, ali = method)
  line_no = __LINE__; str = %Q{
    def #{ali}(*args, &block)
      begin
        #{accessor}.__send__(:#{method}, *args, &block)
      rescue Exception
        $@.delete_if{|s| %r"#{Regexp.quote(__FILE__)}"o =~ s} unless Forwardable::debug
        ::Kernel::raise
      end
    end
  }

  instance_eval(str, __FILE__, __LINE__)
end
            
Also aliased as: def_delegator
def_single_delegators(accessor, *methods) click to toggle source

Shortcut for defining multiple delegator methods, but with no provision for using a different name. The following two code samples have the same effect:

def_delegators :@records, :size, :<<, :map

def_delegator :@records, :size
def_delegator :@records, :<<
def_delegator :@records, :map
 
               # File forwardable.rb, line 235
def def_single_delegators(accessor, *methods)
  methods.delete("__send__")
  methods.delete("__id__")
  for method in methods
    def_single_delegator(accessor, method)
  end
end
            
Also aliased as: def_delegators
delegate(hash) click to toggle source
Alias for: single_delegate
delegate method => accessor click to toggle source
delegate [method, method, ...] => accessor

Takes a hash as its argument. The key is a symbol or an array of symbols. These symbols correspond to method names. The value is the accessor to which the methods will be delegated.

 
               # File forwardable.rb, line 215
def single_delegate(hash)
  hash.each{ |methods, accessor|
    methods = [methods] unless methods.respond_to?(:each)
    methods.each{ |method|
      def_single_delegator(accessor, method)
    }
  }
end
            
Also aliased as: delegate

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus