[#10467] Module re-inclusion in 1.9 vs 1.8 — "Rick DeNatale" <rick.denatale@...>
Some months ago I noticed that the semantics of module inclusion had
[#10468] Floats that are NaN have strange behavior — Jonas Kongslund <jonas@...>
Hi
[#10478] Plan to add ext/digest/lib/digest/hmac.rb to 1.8.6 or 1.8.7? — "Zev Blut" <rubyzbibd@...>
Hello,
[#10480] Ruby 1.8.6 delayed for seven days — "Akinori MUSHA" <knu@...>
I am afraid I have to announce that Ruby 1.8.6 final release will be
[#10490] Join with block — "Farrel Lifson" <farrel.lifson@...>
This patch adds the ability to give the Array#join method a block like so
[#10492] Ruby 1.8.6 preview3 has been released — "Akinori MUSHA" <knu@...>
Hi,
Akinori MUSHA wrote:
On Mon, 5 Mar 2007, Akinori MUSHA wrote:
On Mar 5, 2007, at 04:16, Hugh Sasse wrote:
On Tue, 6 Mar 2007, Eric Hodel wrote:
On Mar 5, 2007, at 10:46, Hugh Sasse wrote:
On Tue, 6 Mar 2007, Eric Hodel wrote:
On Mar 5, 2007, at 12:07, Hugh Sasse wrote:
On Tue, 6 Mar 2007, Eric Hodel wrote:
Hi,
On Tue, 6 Mar 2007, Nobuyoshi Nakada wrote:
Hi,
[#10494] make check for 1.8.6-preview3: TestDBM: DBMError: dbm_store failed — <noreply@...>
Bugs item #9031, was opened at 2007-03-04 12:57
[#10507] Dynamic Array#join with block — <noreply@...>
Patches item #9055, was opened at 2007-03-05 19:57
Hi,
On 06/03/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
On 06/03/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
On 09/03/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#10536] DRb freezes YARV? — "Meinrad Recheis" <meinrad.recheis@...>
dear all,
[#10552] ruby 1.8.5p12: default IO object for gets() ? — Unknown <borg@...3.net>
Hello..
[#10563] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>
Hello,
[#10575] 'rescue' with non-exception class — Brian Candler <B.Candler@...>
I was just caught out by this odd behaviour: a 'rescue' clause doesn't
[#10580] Kernel#exec on OSX — "Kent Sibilev" <ksruby@...>
Does anyone know how to explain this:
[#10585] Bugfix: Extension Compile Error with 1.8.6 — Lothar Scholz <mailinglists@...>
Hello,
[#10594] grave bug in 1.8.6's thread implementation — Sylvain Joyeux <sylvain.joyeux@...4x.org>
In ext/thread/thread.c, remove_one leaves the list in an inconsistent state.
On Thu, 15 Mar 2007 00:15:57 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
> > The fix is in thread-mutex-remove_one.diff.
On Thu, 15 Mar 2007 01:19:04 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
On Wednesday 14 March 2007 17:29, MenTaLguY wrote:
On Thu, 15 Mar 2007 01:48:42 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
Here the next one (hopefully the last)
On Thu, 15 Mar 2007 03:11:41 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
On Wednesday 14 March 2007, MenTaLguY wrote:
On Thu, 15 Mar 2007 06:07:30 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
At Thu, 15 Mar 2007 10:18:19 +0900,
> Which set of patches do you think should be committed? The former to
[#10615] Multiton in standard library — TRANS <transfire@...>
Hi--
On 3/15/07, Tom Pollard <tomp@earthlink.net> wrote:
On Mar 15, 2007, at 11:46 PM, TRANS wrote:
On 3/16/07, James Edward Gray II <james@grayproductions.net> wrote:
[#10646] Marshal.dump shouldn't complain about singletons if the _dump method is defined — <noreply@...>
Bugs item #9376, was opened at 2007-03-19 15:58
noreply@rubyforge.org wrote:
On Monday 19 March 2007 18:01, Urabe Shyouhei wrote:
Hi,
On 3/19/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
> |But what if that singleton class just contained a method that allowed
Hi,
[#10701] Discrepancy between GetoptLong.new and documentation — <noreply@...>
Bugs item #8384, was opened at 2007-02-02 10:06
> -----Original Message-----
[#10705] Google Summer of Code proposal. — "Pedro Del Gallego" <pedro.delgallego@...>
Hi,
On 3/21/07, Pedro Del Gallego <pedro.delgallego@gmail.com> wrote:
[#10711] Re: Extensions to ipaddr.rb — Brian Candler <B.Candler@...>
> Is this your intention?
[#10712] Ruby Method Signatures (was Re: Multiton in standard library) — "Rick DeNatale" <rick.denatale@...>
On 3/19/07, TRANS <transfire@gmail.com> wrote:
On 3/19/07, TRANS <transfire@gmail.com> wrote:
On 3/21/07, Jos Backus <jos@catnook.com> wrote:
On 3/21/07, TRANS <transfire@gmail.com> wrote:
On Thu, Mar 22, 2007 at 10:26:38PM +0900, Rick DeNatale wrote:
On 3/22/07, Paul Brannan <pbrannan@atdesk.com> wrote:
On 3/23/07, Rick DeNatale <rick.denatale@gmail.com> wrote:
[#10729] BUGS in metaclasses inheritance — <noreply@...>
Bugs item #9462, was opened at 22/03/2007 11:19
noreply@rubyforge.org wrote:
[#10746] sub-process with Test::Unit does not exit error code as expected — <noreply@...>
Bugs item #9300, was opened at 2007-03-15 03:35
Hi,
[#10749] class_extension — TRANS <transfire@...>
I'm just following up to find out the status of consideration for
[#10768] Lastest Version IRHG - Technical Review Requested — Charles Thornton <ceo@...>
TO: CORE
[#10798] Virtual classes and 'real' classes -- why? — "John Lam (CLR)" <jflam@...>
I was wondering if someone could help me understand why there's a parallel =
On Thu, 29 Mar 2007 04:44:16 +0900, "John Lam (CLR)" <jflam@microsoft.com> wrote:
Thanks for sharing the eigenclass hack.
John Lam (CLR) wrote:
[#10818] Bug in Net::HTTP#keep_alive? — Aaron Patterson <aaron@...>
Sometimes Apache will send a connection header like this:
Should I submit a bug for this? I guess I'm not sure what proper
[#10826] Comparable module and values of <=> operator — David Flanagan <david@...>
The rdoc for the Comparable module and its methods consistently indicate
Replying to my own post...
I think there's nothing wrong with the implementation and documentation.
Re: class_extension
On 3/23/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> I am not sure what class_extension or extension does. Do they return
> class/module themselves?
You don't remember? It was your idea! Great, now I feel about this
('') small. I've been telling everyone I work with that
class_extension was being considered for inclusion into 1.9/2.0 b/c
that's what you indicated in the ruby-talk thread where this code came
into existence.
Well, I don't mean to blame. Lord, knows I forget things all the time.
So here's a complete reminder:
ruby-talk:196402
It's a long thread however. In sum the resulting code (and
explanation) of what class_extension does follows.
Concerning #extension, yes it returns a special module used to achieve
the same ends.
T.
---
class Module
alias_method :append_features_without_class_extension, :append_features
# = class_extension
#
# Normally when including modules, class/module methods are not
# extended. To achieve this behavior requires some clever
# Ruby Karate. Instead class_extension provides an easy to use
# and clean solution. Simply place the extending class methods
# in a block of the special module method #class_extension.
#
# module Mix
# def inst_meth
# puts 'inst_meth'
# end
#
# class_extension do
# def class_meth
# "Class Method!"
# end
# end
# end
#
# class X
# include Mix
# end
#
# X.class_meth #=> "Class Method!"
#
def class_extension(&block)
@class_extension ||= Module.new do
def self.append_features(mod)
append_features_without_class_extension(mod)
end
end
@class_extension.module_eval(&block) if block_given?
@class_extension
end
private :class_extension
def append_features(mod)
append_features_without_class_extension(mod)
mod.extend(class_extension)
if mod.instance_of? Module
mod.__send__(:class_extension).__send__(:include, class_extension)
end
end
end
class Class
undef_method :class_extension
end
# _____ _
# |_ _|__ ___| |_
# | |/ _ \/ __| __|
# | | __/\__ \ |_
# |_|\___||___/\__|
#
=begin test
require 'test/unit'
class TC_ClassMethods < Test::Unit::TestCase
# fixture
module N
class_extension do
def n ; 43 ; end
def s ; self ; end
end
extend class_extension
end
class X
include N
def n ; 11 ; end
end
module K
include N
class_extension do
def n ; super + 1 ; end
end
end
class Z
include K
end
# tests
def test_01
assert_equal( 43, N.n )
assert_equal( N, N.s )
end
def test_02
assert_equal( 43, X.n )
assert_equal( X, X.s )
end
def test_03
assert_equal( 11, X.new.n )
end
def test_04
assert_equal( 43, K.n ) #notic the difference!
assert_equal( K, K.s )
end
def test_05
assert_equal( 44, Z.n )
assert_equal( Z, Z.s )
end
end
=end