[#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:02321] Re: Question about attribute writers
Clemens Hintze <c.hintze@gmx.net> writes:
> Hmm difficult thingy here, I think. I would never assume that
>
> age = 12;
>
> could invoke a method, because I *know* that this syntax normally
> means assignment to a local variable. It would be very strange to me
> to use a method 'age=', if I can access @age directly. Invoking a
> method would furthermore be more costly.
The reason to make it use the method call is to decouple the use of
'age' from it's implementation. For example, say we had
class Person
def initialize(age)
@age = age
end
def ageInMonths=(aim)
@age = aim * 12
end
end
Then, sometime later we decided to change the *internal*
representation of age from 'years' to 'days'. Then we'd have
class Person
def initialize(age)
@age = yearsToDays(age)
end
def ageInMonths=(aim)
@age = aim * 12
end
end
But suddenly ageInMonths is wrong. If instead we'd used the method to
set it
class Person
def age=(newAge)
@age = yearsToDays(newAge)
end
def ageInMonths=(aim)
self.age = aim * 12
end
end
Then everything would have been fine.
However, you're right. We need to document that the interpretation of
'age' as a method call or variable is different depending on whether
there's an assignment.
Just as a matter of interest, though,
class Fred
private
def age=(newAge)
@age = newAge
end
public
def setAge(newAge)
age = newAge
end
def initialize
@age=99
end
end
f = Fred.new
f.setAge(10)
p f.inspect
Shouldn't Ruby throw an error when an assignment accessor is defined
to be private, as it can never be used.
> Perhaps it would be better to not change anything, and describe this
> case very carefully in the books and docs. Every language has its
> gotchas. We cannot eliminate all of them. This is one of Ruby.
d'accord
Dave