If self isn’t specificed I’m unable to call the method. ex.
Mod1::b_method fails.
So in this particular case, ‘self’ here refers to the Module called
Mod1. Your code defines a method (a_method) on the module itself which
allows you to call it with the :: syntax.
The other method (b_method) is merely a method defined inside the
module. In this case the module is acting as a namespace. If you
‘include’ this module somewhere in your code you’ll be adding the
b_method to that place (scope?)
(disclaimer: I’m still learning ruby myself, so that may not be the
best answer ever, but it is how I understand it… And knowing these
guys these days I’ll be corrected if I’m wrong, mere moments from
now.)
Right here you’re fishing in _why territory (specifically the camping
framework) where things are way over my head, someone else will have
to help you there.
If self isn’t specificed I’m unable to call the method. ex.
Mod1::b_method fails.
So in this particular case, ‘self’ here refers to the Module called
Mod1. Your code defines a method (a_method) on the module itself which
allows you to call it with the :: syntax.
The other method (b_method) is merely a method defined inside the
module. In this case the module is acting as a namespace. If you
‘include’ this module somewhere in your code you’ll be adding the
b_method to that place (scope?)
(disclaimer: I’m still learning ruby myself, so that may not be the
best answer ever, but it is how I understand it… And knowing these
guys these days I’ll be corrected if I’m wrong, mere moments from
now.)
Harold,
Thanks for that. I figured I understood the use of self, but assumed it
was redundant and therefore I couldn’t see the difference between
a_method and b_method. Now I get it. In my C++ world we don’t qualify
methods like this.
was redundant and therefore I couldn’t see the difference between
a_method and b_method. Now I get it. In my C++ world we don’t qualify
methods like this.
No problemo.
In comparison to C++, your a_method is (kinda sorta) like a static
method, but not really, but kindof because you can use the :: syntax
to call it.
b_method is more like a method belonging to a class which you’re
inheriting. The instances of your new class can call b_method
(assuming you’ve included Mod1) …
Ruby only supports single inheritance directly, but you can emulate
multiple inheritance like this by just including multiple modules into
your class… I believe the rubyists like to call this mixing-in…
If self isn’t specificed I’m unable to call the method. ex.
Mod1::b_method fails.
I’ve scoured on-line docs about module and come up empty.
I see people already helped you with this one
Next. What does ‘/upload’ mean in:
class Upload < R ‘/upload’
This is the beginning of a controller definition in the Camping
microframework. The class is “inheriting” from the method R() which
takes a regex argument of the route to bind to. The R() method then
adds some meta-info to the runtime, and returns an anonymous class
that Upload actually inherits from.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.