Sha256: b5745cb270cd0cb0ed07503000c010a67da4dba924a022227f492fadb2a71ce7

Contents?: true

Size: 538 Bytes

Versions: 123

Compression:

Stored size: 538 Bytes

Contents

# The original Module class.
#
class Module # :nodoc:all

  def each_delegate *methods
    options = methods.pop
    unless options.is_a?(Hash) && to = options[:to]
      raise ArgumentError, "Multi delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :something, :to => :an_array_reader)."
    end
    methods.each do |method|
      module_eval("def #{method}(*args, &block)\n#{to}.each{ |t| t.__send__(#{method.inspect}, *args, &block) }\nend\n", "(__DELEGATION__)", 1)
    end
  end

end

Version data entries

123 entries across 123 versions & 1 rubygems

Version Path
picky-4.0.0pre6 lib/picky/extensions/module.rb
picky-4.0.0pre5 lib/picky/extensions/module.rb
picky-4.0.0pre3 lib/picky/extensions/module.rb
picky-4.0.0pre2 lib/picky/extensions/module.rb
picky-4.0.0pre1 lib/picky/extensions/module.rb
picky-3.6.16 lib/picky/extensions/module.rb
picky-3.6.15 lib/picky/extensions/module.rb
picky-3.6.14 lib/picky/extensions/module.rb
picky-3.6.13 lib/picky/extensions/module.rb
picky-3.6.12 lib/picky/extensions/module.rb
picky-3.6.11 lib/picky/extensions/module.rb
picky-3.6.10 lib/picky/extensions/module.rb
picky-3.6.9 lib/picky/extensions/module.rb
picky-3.6.8 lib/picky/extensions/module.rb
picky-3.6.7 lib/picky/extensions/module.rb
picky-3.6.6 lib/picky/extensions/module.rb
picky-3.6.4 lib/picky/extensions/module.rb
picky-3.6.3 lib/picky/extensions/module.rb
picky-3.6.2 lib/picky/extensions/module.rb
picky-3.6.1 lib/picky/extensions/module.rb