Sha256: b3c55b298e07f6786b4d83a85af7685dc2928f50001c0faaa6816cb98fe7db2f

Contents?: true

Size: 525 Bytes

Versions: 64

Compression:

Stored size: 525 Bytes

Contents

# The original Module class.
#
class Module

  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

64 entries across 64 versions & 1 rubygems

Version Path
picky-4.12.1 lib/picky/extensions/module.rb
picky-4.12.0 lib/picky/extensions/module.rb
picky-4.11.3 lib/picky/extensions/module.rb
picky-4.11.2 lib/picky/extensions/module.rb
picky-4.11.1 lib/picky/extensions/module.rb
picky-4.11.0 lib/picky/extensions/module.rb
picky-4.10.0 lib/picky/extensions/module.rb
picky-4.9.0 lib/picky/extensions/module.rb
picky-4.8.1 lib/picky/extensions/module.rb
picky-4.8.0 lib/picky/extensions/module.rb
picky-4.7.0 lib/picky/extensions/module.rb
picky-4.6.6 lib/picky/extensions/module.rb
picky-4.6.5 lib/picky/extensions/module.rb
picky-4.6.4 lib/picky/extensions/module.rb
picky-4.6.3 lib/picky/extensions/module.rb
picky-4.6.2 lib/picky/extensions/module.rb
picky-4.6.1 lib/picky/extensions/module.rb
picky-4.6.0 lib/picky/extensions/module.rb
picky-4.5.12 lib/picky/extensions/module.rb
picky-4.5.11 lib/picky/extensions/module.rb