The documentation is very straight forward and the mentioned example
also cleared all the lines except the one mentioned inside **.

http://ruby-doc.org/core-2.0.0/Module.html#method-i-module_function

Creates module functions for the named methods. These functions may be
called with the module as a receiver, and also become available as
instance methods to classes that mix in the module. Module functions are
copies of the original, and so may be changed independently. The
instance-method versions are made private. *If used with no arguments,
subsequently defined methods become module functions.*


module Mod
  def one
    "This is one"
  end
  module_function :one
end
class Cls
  include Mod
  def call_one
    one
  end
end
Mod.one     #=> "This is one"
c = Cls.new
c.call_one  #=> "This is one"
module Mod
  def one
    "This is the new one"
  end
end
Mod.one     #=> "This is one"
c.call_one  #=> "This is the new one"

Please help me to understand what does mean by "If used with no
arguments, subsequently defined methods become module functions."?

-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/5a19164430bc09f5e89b1766a48e5bf3%40ruby-forum.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to