[#1649] Re: New Ruby projects — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1672] Re: Ruby 1.4 stable manual bug? — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1673] Re: Possible problem with ext/socket in 1.5.2 — itojun@...
[#1694] Conventions for our Ruby book — Dave Thomas <Dave@...>
[#1715] Install postgresql support — Ikhlasul Amal <amal@...>
Hi all,
Hi,
[#1786] Is this a bug? — Clemens Hintze <clemens.hintze@...>
(mailed & posted)
[#1814] Objects nested sometimes. — Hugh Sasse Staff Elec Eng <hgs@...>
I am attemptiong to write a package which consists of a workspace
[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>
Hi all,
Hi,
Yukihiro Matsumoto writes:
Hi,
Hi,
[#1834] enum examples? — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examplse of using the Enumerable module? I've had a
[#1844] Minor irritation, can't figure out how to patch it though! — Hugh Sasse Staff Elec Eng <hgs@...>
I was considering how difficult it would be to patch Ruby to accept
[#1889] [ruby-1.5.3] require / SAFE — ts <decoux@...>
[#1896] Ruby Syntax similar to other languages? — "David Douthitt" <DDouthitt@...>
From: Yukihiro Matsumoto <matz@netlab.co.jp>
[#1900] Enumerations and all that. — Hugh Sasse Staff Elec Eng <hgs@...>
Thank you to the people who responded to my questions about Enumerated
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 16 Mar 2000, Dave Thomas wrote:
[#1929] Re: Class Variables — "David Douthitt" <DDouthitt@...>
| "David Douthitt" <DDouthitt@cuna.com> writes:
[#1942] no Fixnum#new ? — Quinn Dunkan <quinn@...>
Ok, I can add methods to a built-in class well enough (yes I know about succ,
[#1989] English Ruby/Gtk Tutorial? — schneik@...
Hi,
[#2022] rb_global_entry — ts <decoux@...>
[#2036] Anonymous and Singleton Classes — B_DAVISON <Bob.Davison@...>
I am a Ruby newbie and having some problems getting my mind around certain
[#2069] Ruby/GTK+ question about imlib --> gdk-pixbug — schneik@...
[#2073] Re: eval.rb fails — "Dat Nguyen" <thucdat@...>
The doc is fine, this happens only if you try to execute 'until' block
On Wed, 22 Mar 2000, Dat Nguyen wrote:
[#2084] Scope violated by import via 'require'? — Clemens Hintze <c.hintze@...>
Hi,
[#2104] ARGF or $< — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examples of how to use ARGF or $< as I cannot find much
Hi.
[#2165] Ruby strict mode and stand-alone executables. — "Conrad Schneiker" <schneiker@...>
Some people want Ruby to have a strict compile mode.
[#2203] Re: parse bug in 1.5 — schneik@...
[#2212] Re: Ruby/Glade usage questions. — ts <decoux@...>
>>>>> "m" == mrilu <mrilu@ale.cx> writes:
[#2241] setter() for local variables — ts <decoux@...>
[#2256] Multiple assignment of pattern match results. — schneik@...
[#2267] Re: Ruby and Eiffel — h.fulton@...
[#2309] Question about attribute writers — Dave Thomas <Dave@...>
Clemens Hintze <c.hintze@gmx.net> writes:
[ruby-talk:02266] Re: Ruby and Eiffel
On Tue, 28 Mar 2000, Andrew Hunt wrote: > Well, that brings up an interesting question. What do > you think about implementing Design By Contract in a > non-staticaly typed language such as Ruby? I've toyed around > with several implementations of DBC in Ruby, and once Dave > and I get a bit more of the Ruby book finished I'll look at > it again. > > But would that be a usefull feature to have in Ruby? > > /\ndy Having looked at this a little, I can see it would be a good idea. From what I have read a class, method, (whatever), agrees to do certain things to data meeting certain pre-conditions, and it agrees to produce certain post-conditions when it does so. It does not agree to do anything else. Some of these checks can be done at compile time, but mostly they'd be done at run time. I think that is the heart of the matter. So I agree that putting specific keywords to support this into the language would be a good idea, because their presence would encourage people to do checks on data, and would also aid the understanding of the intentions behind code design. Instead of wondering what all these references to Wands and Handkerchieves are about, one could clearly see that the pre-conditions are the presence of a Top_Hat and the post-condition is a Rabbit pulled from it. Given the multi-lingual environment in which Ruby code is produced, this can only be helpful. Now, you ask about a non-statically typed language. I can see that there is less information about a type in such a case, because it can take any value, and this was raised when we discussed my enumeration class. However, there is a case in Ruby where conditions are already imposed on data, and how these conditions affect the operation of the program is determined before run-time. I am talking about Taint checks. I wonder if it would be possible to apply some contractual checks, in a similar way to Taint checking, to data flowing in and out of methods, even prior to running the code? I have never tried implement this, so could be talking out of my Top_Hat, a most unsatisfactory post-condition. :-) Hugh hgs@dmu.ac.uk