I require two ruby files which include two classes with the same name.
how can I specify which class I use?
···
--
Posted via http://www.ruby-forum.com/.
I require two ruby files which include two classes with the same name.
how can I specify which class I use?
--
Posted via http://www.ruby-forum.com/.
class X; end # x.rb
class X; end # y.rb
same class, only one to specify. Files mean nothing in ruby, they're just vehicles for the parser.
On Jan 20, 2009, at 17:11 , Zhao Yi wrote:
I require two ruby files which include two classes with the same name.
how can I specify which class I use?
Ryan Davis wrote:
On Jan 20, 2009, at 17:11 , Zhao Yi wrote:
I require two ruby files which include two classes with the same name.
how can I specify which class I use?class X; end # x.rb
class X; end # y.rbsame class, only one to specify. Files mean nothing in ruby, they're
just vehicles for the parser.
For this code:
require 'x.rb'
require 'y.rb'
X.new #which class it uses, can I specify the class like x.X or y.X?
--
Posted via http://www.ruby-forum.com/\.
Zhao Yi wrote:
Ryan Davis wrote:
I require two ruby files which include two classes with the same name.
how can I specify which class I use?
class X; end # x.rb
class X; end # y.rbsame class, only one to specify. Files mean nothing in ruby, they're
just vehicles for the parser.
For this code:require 'x.rb'
require 'y.rb'
X.new #which class it uses, can I specify the class like x.X or y.X?
Why not answer this empirically? Try it out!
t.
On Jan 20, 2009, at 17:11 , Zhao Yi wrote:
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< tc@tomcloyd.com >> (email)
<< TomCloyd.com >> (website) << sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Zhao Yi wrote:
Ryan Davis wrote:
I require two ruby files which include two classes with the same name.
how can I specify which class I use?class X; end # x.rb
class X; end # y.rbsame class, only one to specify. Files mean nothing in ruby, they're
just vehicles for the parser.For this code:
require 'x.rb'
require 'y.rb'
X.new #which class it uses, can I specify the class like x.X or y.X?
Nope - there is only one class X. Which file it was (first) defined in
makes no difference. If you require 'x.rb' first then class X is
created, and when you require 'y.rb' new methods are added into the
*same* class.
If you want them to be different, define them in different namespaces.
This is what Log4r:: does (it refers to the namespace, not the file)
module One; class X; end; end # x.rb
module Two; class X; end; end # y.rb
require 'x'
require 'y'
One::X.new # this is the one defined in x.rb
Two::X.new # this is the one defined in y.rb
Tom Cloyd wrote:
Why not answer this empirically? Try it out!
I have tried but failed. This is my code:
logger=log4r.Logger.new
and I got the error: undefined local variable or method log4r
--
Posted via http://www.ruby-forum.com/\.
Zhao Yi wrote:
Tom Cloyd wrote:
Why not answer this empirically? Try it out!
I have tried but failed. This is my code:logger=log4r.Logger.new
and I got the error: undefined local variable or method log4r
I think you want
logger = Log4r.Logger.new
or
logger = Log4r::Logger.new
But, glancing at the docs, you also need to specify a name for it, like
logger = Log4r::Logger.new "mylog"
Hope that helps.
-Justin