W
Wesley Silva
Hi, I'm still learning ruby and i'm trying, but I just can't understand
this result...
class Module
@@docs = {}
# Invoked during class definitions
def doc(str)
@@docs[self.name] = self.name + ":\n" + str.gsub(/^\s+/, '')
end
# invoked to get documentation
def Module::doc(aClass)
# If we're passed a class or module, convert to string
# ('<=' for classes checks for same class or subtype)
aClass = aClass.name if aClass.class <= Module
@@docs[aClass] || "No documentation for #{aClass}"
end
end
class Example
doc("This is a sample documentation string")
# .. rest of class
end
puts Module::doc(Example)
Produces:
Example:
This is a sample documentation string
But
class Module
@@docs = {}
# Invoked during class definitions
def doc(str)
@@docs[self.name] = self.name + ":\n" + str.gsub(/^\s+/, '')
end
# invoked to get documentation
def Module::doc(aClass)
# If we're passed a class or module, convert to string
# ('<=' for classes checks for same class or subtype)
aClass = aClass.name if aClass.class <= Module
@@docs[aClass] || "No documentation for #{aClass}"
end
end
class Example<Module
doc("This is a sample documentation string")
# .. rest of class
end
puts Module::doc(Example)
Produces:
No documentation for Example
Can anybody tell me why?
this result...
class Module
@@docs = {}
# Invoked during class definitions
def doc(str)
@@docs[self.name] = self.name + ":\n" + str.gsub(/^\s+/, '')
end
# invoked to get documentation
def Module::doc(aClass)
# If we're passed a class or module, convert to string
# ('<=' for classes checks for same class or subtype)
aClass = aClass.name if aClass.class <= Module
@@docs[aClass] || "No documentation for #{aClass}"
end
end
class Example
doc("This is a sample documentation string")
# .. rest of class
end
puts Module::doc(Example)
Produces:
Example:
This is a sample documentation string
But
class Module
@@docs = {}
# Invoked during class definitions
def doc(str)
@@docs[self.name] = self.name + ":\n" + str.gsub(/^\s+/, '')
end
# invoked to get documentation
def Module::doc(aClass)
# If we're passed a class or module, convert to string
# ('<=' for classes checks for same class or subtype)
aClass = aClass.name if aClass.class <= Module
@@docs[aClass] || "No documentation for #{aClass}"
end
end
class Example<Module
doc("This is a sample documentation string")
# .. rest of class
end
puts Module::doc(Example)
Produces:
No documentation for Example
Can anybody tell me why?