[#11073] segfault printing instruction sequence for iterator — <noreply@...>
Bugs item #10527, was opened at 2007-05-02 14:42
Hi,
On Thu, May 10, 2007 at 04:51:18PM +0900, Nobuyoshi Nakada wrote:
Hi,
Hi,
This seems to make valgrind much happier.
On Thu, May 17, 2007 at 11:14:35PM +0900, Paul Brannan wrote:
Hi,
Now 'a' shows up twice in the local table:
Hi,
[#11082] Understanding code: Kernel#require and blocks. — Hugh Sasse <hgs@...>
I'm trying to debug a Rails application which complains about an
On 5/4/07, Hugh Sasse <hgs@dmu.ac.uk> wrote:
On Fri, 4 May 2007, George wrote:
On Fri, May 04, 2007 at 06:18:19PM +0900, Hugh Sasse wrote:
[#11108] pattern for implementation-private constants? — David Flanagan <david@...>
Hi,
I believe there isn't a way, but I don't think it's really necessary. Just
[#11127] Bugs that can be closed — "Jano Svitok" <jan.svitok@...>
I propose closing these bugs as invalid:
[#11145] Rational comparison to 0 fails when denominator is != 1 — <noreply@...>
Bugs item #10739, was opened at 2007-05-10 22:06
Hi,
[#11169] Allow back reference with nest level in Oniguruma for Ruby again — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <wonado@...>
Remark: I posted this text in comp.lang.ruby first, but Matz told me,
Does it make sense or is it required to write this as a RCR?
[#11176] FileUtils.rm_rf misfeature? — johan556@...
Hi!
[#11210] Pathname ascend and descend inclusive parameter — TRANS <transfire@...>
I would like to suggest that Pathname#ascend and Pathname#descend
[#11234] Planning to release 1.8.6 errata — Urabe Shyouhei <shyouhei@...>
Hi all.
On 25/05/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
[#11252] Init_stack and ruby_init_stack fail to reinit stack (threads problem?) — <noreply@...>
Bugs item #11134, was opened at 2007-05-25 12:14
Hi,
Nobuyoshi Nakada wrote:
[#11255] ruby_1_8_6 build problem (make install-doc) — johan556@...
Hi!
[#11271] providing better support through rubyforge tracker categories — Ryan Davis <ryand-ruby@...>
I'm going to make more categories for the trackers (bugs and patches)
[#11367] BUG: next in lambda: 1.8.6 differs from 1.8.4 and 1.9.0 — David Flanagan <david@...>
A toplevel next statement in a lambda does not return a value in 1.8.6,
[#11368] $2000 USD Reward for help fixing Segmentation Fault in GC — Brent Roman <brent@...>
Hi Brent,
[ ruby-Patches-1923 ] Forwardable, reworked
Patches item #1923, was opened at 2005-05-17 07:50
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=1700&aid=1923&group_id=426
Category: Ruby1.8
>Group: v1.8.x
Status: Open
Resolution: None
Priority: 3
Submitted By: Daniel Berger (djberg96)
Assigned to: Nobody (None)
Summary: Forwardable, reworked
Initial Comment:
The following code is a reworked version of the current Forwardable module. It eliminates SingleForwardable altogther and adds the "delegate" method, at the suggestion of Florian Gross.
I didn't provide a unified diff because I wasn't sure what additional documentation folks would want to include at the top of the file (and because there are so many code and doc changes).
Attached is a corresponding test suite that should probably go under test/forwardable (which would need to be created).
Regards,
Dan
# forwardable.rb
#
# == Synopsis
# Provides a mechanism to allow classes to delegate named method calls
# to other objects.
#
# == Usage
# class Foo
# extend Forwardable
# delegate :length => :@str
# delegate [:first, :last] => :@arr
# def initialize
# @arr = ["foo","bar","baz"]
# @str = "hello"
# end
# end
#
# f = Foo.new
# puts f.length # 5, length of @str
# puts f.first # "foo", first element of @arr
# puts f.last # "baz", last element of @arr
#
# == Author
# Keiju Ishitsuka
#
# Revised by: Daniel J. Berger with suggestions from Florian Gross.
#
module Forwardable
FORWARDABLE_VERSION = "1.0.0"
# 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.
#
# :call-seq:
# delegate method => accessor
# delegate [method, method, ...] => accessor
#
def delegate(hash)
hash.each{ |methods, accessor|
methods = methods.to_s unless methods.respond_to?(:each)
methods.each{ |method|
def_instance_delegator(accessor, method)
}
}
end
# Delegates +methods+ to the given +accessor+.
#
# :call-seq:
# def_delegators(accessor, *methods)
#
def def_instance_delegators(accessor, *methods)
methods.delete("__send__")
methods.delete("__id__")
methods.each{ |method|
def_instance_delegator(accessor, method)
}
end
# Delegates a single +method+ to the given +accessor+.
#
# :call-seq:
# def_delegator(accessor, method, alias=nil)
#
# If an alias is provided, the accessor will respond to that alias instead
# of the original method.
def def_instance_delegator(accessor, method, ali = method)
str = %Q{
def #{ali}(*args, &block)
#{accessor}.send(:#{method}, *args, &block)
end
}
# If it's not a class or module, it's an instance
begin
module_eval(str)
rescue
instance_eval(str)
end
end
alias def_delegators def_instance_delegators
alias def_delegator def_instance_delegator
end
----------------------------------------------------------------------
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=1700&aid=1923&group_id=426