Hello all,
This is really two questions.
I've been putting together a nested class structure in pieces
since it is a little large and unwieldy.
Here's a snippet of something I've run across.
By the way, my last change was to implement a simple version of the
Singleton pattern (without using singleton.rb).
# Note: *Reopening* existing classes
class ABC
class XYZ
@@instance = nil
def initialize(foo)
# Do some stuff...
# and then:
def XYZ.new(foo)
@@instance
end
end
end
end
This works fine.
First question: Is this a valid way to implement Singleton, or am I
overlooking something?
Then I thought: Well, let's get rid of the unnecessary verbiage.
(Remember, I'm REOPENING these classes.)
So I did:
# Note: *Reopening* existing classes
class ABC::XYZ
@@instance = nil
def initialize(foo)
# Do some stuff...
# and then:
def ABC::XYZ.new(foo)
@@instance
end
end
end
But it didn't work.
This does work:
# Note: *Reopening* existing classes
class ABC::XYZ
@@instance = nil
def initialize(foo)
# Do some stuff...
# and then:
klass = ABC::XYZ
def klass.new(foo)
@@instance
end
end
end
Second question: Why should these two be different?
Thanks,
Hal Fulton