[#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:01907] Re: I'm stumped...!
"David Douthitt" <DDouthitt@cuna.com> writes:
> class Oratab < ConfigFile
> def open
> super(oratab)
> end
...
> #./ruby.functions:43:in `open': wrong # of arguments (0 for 1) (ArgumentError)
> # from ./ruby.functions:43
> #Oratab.open.each_line { |line|
> # line.chomp!;
> # print line, "\n";
> # }
You're calling 'open' as a class method (or what the documentation
calls a singleton method), but you defined it as an instance method.
You could change the definition to
class OraTab
def OraTab.open
super(oratab)
end
and you'd then bump in to the next problem. 'oratab' is actually a
local variable in the outer scope, an so is not available within
OraTab. If you run this code, you'd get an error. So... you need to
make 'oratab' globally accessible, either by putting a $ in front of
its name, or by making it a constant (ORATAB).
> #./ruby.functions:57: undefined method `log' for Instance:Class (NameError)
> #Instance.log("test", "info");
Again, you defined it as an instance method, but are calling it as a
class method.
> #./ruby.functions:51: undefined method `instances' for Oratab:Class (NameError)
> #Oratab.instances { |inst|
> # print inst, " ";
> # }
And again ;-)
To recap:
A class method (or what some of the documentation calls a singleton
method of a class) can be called at any time, and does not require an
object of that class as a receiver.
An instance method can only be called if you have an object of the
appropriate class.
class Silly
def initialize(val)
@instance_variable = val
end
def Silly.sayHello
puts "hello"
end
def sayValue
print "value = #{@instance_variable}\n"
end
end
Given this definition, you can call
Silly.sayHello
but to call 'sayValue' you need an instance (an object)
obj = Silly.new('wombat')
obj.sayValue
Regards
Dave