ruby - Why prefix a method with "self" -
i'm doing following ruby tutorial http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/48-advanced-modules/lessons/118-wrapping-up-modules
one of exercises asks me to
...define static method square in module math. should return square of number passed it...
why work when prefix method definition "self"? e.g. following works:
module math def self.square(x) x ** 2 end end
but following not work:
module math def square(x) x ** 2 end end
why this? reference, method being called puts math.square(6)
within context of module, declaring method self
prefix makes module method, 1 can called without having include
or extend
module.
if you'd have mix-in methods, default, , module methods, requires self
prefix, can this:
module math # define mix-in method def square(x) x ** 2 end # make mix-in methods available directly extend self end
that should have effect of making these methods usable calling math.square
directly.