[#8478] resolv.rb -- doc patch. — Hugh Sasse <hgs@...>
This is an attempt to get the RD format docs for resolv.rb into
[#8484] strptime fails to properly parse certain inputs — <noreply@...>
Bugs item #5263, was opened at 2006-08-01 23:14
Hi,
Hi,
nobu@ruby-lang.org wrote:
Why bother other languages? They are on their own. We should not
[#8497] Ruby Socket to support SCTP? — Philippe Langlois <philippelanglois@...>
Hi,
[#8504] TCPSocket: bind method missing — hadmut@... (Hadmut Danisch)
Hi,
[#8513] patches for the 1.8.5 deadline... — Hugh Sasse <hgs@...>
As far as I can tell the only patches which I've submitted which
On Aug 3, 2006, at 10:20 AM, Hugh Sasse wrote:
On Fri, 4 Aug 2006, Eric Hodel wrote:
[#8522] IRB change for RDoc workaround — Eric Hodel <drbrain@...7.net>
RDoc chokes on the following code:
[#8525] rdoc bug? — Steven Jenkins <steven.jenkins@...>
I think I've found a bug in rdoc's handling of C files. Specifically, it
[#8555] Process.gid= fails on OS X — <noreply@...>
Bugs item #5351, was opened at 2006-08-08 01:56
>>>>> On Tue, 8 Aug 2006 17:56:07 +0900
Hi,
Hi,
>>>>> On Wed, 9 Aug 2006 12:31:07 +0900
Hi,
[#8561] sandbox timers & block scopes — why the lucky stiff <ruby-core@...>
Two puzzles I am trying to solve:
On 8/8/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
On 8/16/06, Francis Cianfrocca <garbagecat10@gmail.com> wrote:
raise ThisDecayingInquisition, "anyone? anyone at all?"
On Wed, 2006-08-16 at 00:35 +0900, why the lucky stiff wrote:
On Wed, Aug 16, 2006 at 02:46:30AM +0900, MenTaLguY wrote:
On 8/15/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
On 8/15/06, Charles O Nutter <headius@headius.com> wrote:
On Wed, Aug 16, 2006 at 04:14:33AM +0900, Charles O Nutter wrote:
On 8/15/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
Hi,
[#8568] Pathname.to_a — Marc Haisenko <haisenko@...>
Hi folks,
[#8585] RDoc: extensions spread across multiple C files — Tilman Sauerbeck <tilman@...>
Hi,
Tilman Sauerbeck [2006-08-11 00:39]:
[#8593] ri problem with the latest ruby_1_8 — "Kent Sibilev" <ksruby@...>
Does anyone know why for some strange reason ri doesn't know about any
On Aug 11, 2006, at 10:55 AM, Kent Sibilev wrote:
[#8608] Another ri problem (ruby_1_8 branch) — "Kent Sibilev" <ksruby@...>
I've noticed that many builtin Ruby classes don't have descriptions:
On Aug 12, 2006, at 11:45 PM, Kent Sibilev wrote:
On 8/15/06, Eric Hodel <drbrain@segment7.net> wrote:
[#8609] Again Range=== bug — Ondrej Bilka <neleai@...>
Problem of discrete membership at Range#=== is that it returns unexpected
[#8616] invalid test in "sudo make install-doc"? — <noreply@...>
Bugs item #5415, was opened at 2006-08-14 12:01
[#8662] NODE_WHEN inside a case else body — "Dominik Bathon" <dbatml@...>
Hi,
[#8690] a ruby-core primer — why the lucky stiff <ruby-core@...>
Hello, all. I've been working on the ruby-core page for the new Ruby site.
On 8/22/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
On 8/24/06, Dave Howell <groups+2006@howell.seattle.wa.us> wrote:
[#8709] More ri-problems (ruby_1_8 branch again) — Johan Holmberg <holmberg@...>
Hi!
[#8735] Legal operator symbols — "Nikolai Weibull" <now@...>
Why are :>, :>=, :<=, :< fine as symbols, while := isn't?
Hi --
[#8758] sandbox r50, here we go, loading conflicting gems — why the lucky stiff <ruby-core@...>
Checky.
[Q] How would you do method extensions (sometimes called class extensions) in Ruby?
Hi List,
(1) The Problem: Bridge Gap between Tests and Documentation with
Executable Examples
May I introduce myself shortly: I am a long-term OOer using mainly
Smalltalk until now [0] - and I am interested in bridging the gap
between documentation (static, bound (comments possible for classes
and methods), often outdated) and unit testing (dynamic, unbound [2],
up to date) by the metaphor of examples.
(2) The Concept
I'd like to be able to see exemplified calls for methods ("method
examples") - and compose new method examples using example instances
of classes - which in turn are created by "method examples" [3]
(3) The Proof of Concept
I have some prototypes for "Eg" in Smalltalk [3], but wonder how it
would be possible to do something like this in Ruby.
(4) My Approach in Smalltalk: Relying on Conventions and Method
Extensions
(4.1) Exemplifying Classes
The easiest solution to bind examples at least to their classes
(where they should give an exemplified instance of) is by making them
factory methods of them on the class side. At least in Smalltalk you
can see this pattern a lot (usually these class methods also start
with "example..."), I am sure Ruby folks do something similar.
(4.2) Exemplifying and Testing Methods
I just say that the last method called in these class methods is the
one exemplified by this example. So this is how I can bind the
methods to their "method examples" in a light-way and very readable
manner.
If the method under test (yes, the last one called in the factory
method / example method) has some postconditions I would declare this
method to be a "checked method example".
If there are some assertions in the "method example" itself, I take
the last method called before the assertions as the tested/
exemplified method. I call these kind of "commands" "method tests".
Note that these "method commands" do return an instance of the class
they are bound to. This is my invariant for storing them and also
ensures that the instances they create can be reused by higher-level
examples/ tests. I do not believe tests should be "void" as JUnit,
one only needed to call the highest level tests, which in turn can
call lower level ones. And yes - all tests shall be side effect free,
and everything but the return value should get garbage collected
after a test is over.
(5) Finally: My Concrete Problem
As you can see I am heavily relying on conventions to keep the code
readable, but still machine parsable. But for doing so I need to
denote these "method commands" (including "method examples", "checked
method examples" and "method tests") as being of this kind. Besides
many people do not like the idea to deploy their code together with
tests, so they needed to be separable.
This is fine in Smalltalk, as we have method extensions, which scope
allow Smalltalkers to add methods to classes in packages, in which
these classes have _not_ been originally defined, but how would you
do this in Ruby?
I am aware of Singleton Methods, but as they can extend instances,
(how) can I extend classes without changing their original class
definition in Ruby?
I would be very grateful for some help, or pointers - certainly I
wouldn't mind if somebody stole this idea, actually I'd love to see
"Eg" ported to Ruby, but I am lacking a bit time to do it myself: I
have to finish my PhD soon and then a Smalltalk (Seaside) job to start.
- But I do would like not to look too Smalltalk-Snobbish and include
some help in my PhD to any guys of other fine languages, who decided
some day, that this might be a good idea.
Cheers,
Markus
[1] http://www.iam.unibe.ch/~scg/cgi-bin/scgbib.cgi?query=gaelli
[2] Markus Gaelli, Michele Lanza and Oscar Nierstrasz, 典owards a
Taxonomy of SUnit Tests,Proceedings of ESUG 2005 (13th
International Smalltalk Conference), September 2005.
http://www.iam.unibe.ch/~scg/Archive/Papers/
Gael05aTowardsATaxonomyOfUnitTests.pdf
[3] Markus Gaelli, Oscar Nierstrasz and St駱hane Ducasse, 徹ne-Method
Commands: Linking Methods and Their Tests,OOPSLA Workshop on
Revival of Dynamic Languages, October 2004.
http://www.iam.unibe.ch/~scg/Archive/Papers/
Gael04cLinkingMethodsAndTests.pdf