In Ruby, I understand the basic idea of extend
. However, what's happening in this segment of code? Specifically, what does extend
do? Is it just a convenient way of making the instance methods into class methods? Why would you do it this way rather than specifying class methods from the beginning?
module Rake
include Test::Unit::Assertions
def run_tests # etc.
end
# what does the next line do?
extend self
end
It is a convenient way to make instance methods into class methods. But you can also use it as a more efficient singleton.