Module_function

Hi,
I'm having some trouble using module_function correctly. If someone
could help me it'd be great.

I have a module M that defines method a().
I would like for a() to be callable by M.a() or include M; a();

However (and this is where my problem lies)
a() calls the helper method b().

module M
  module_function
  def a
    b
  end

  private
  def b
    #helper method
  end
end

This throws a NoMethodError when I try to call M.a(), because it looks
for M.b() (but there isn't and shouldn't be any).

What's the normal way for resolving this?
  Thanks a lot for your help
  -patrick

···

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

One way is to say, "to hell with module_function":

  module M
    extend self

    def a
      b
    end

    private
    def b
      #helper method
    end
  end

T.

···

On Aug 7, 3:24 pm, Patrick Li <patrickli_2...@hotmail.com> wrote:

Hi,
I'm having some trouble using module_function correctly. If someone
could help me it'd be great.

I have a module M that defines method a().
I would like for a() to be callable by M.a() or include M; a();

However (and this is where my problem lies)
a() calls the helper method b().

module M
module_function
def a
b
end

private
def b
#helper method
end
end

This throws a NoMethodError when I try to call M.a(), because it looks
for M.b() (but there isn't and shouldn't be any).

What's the normal way for resolving this?