Trans
8/7/2008 10:04:00 PM
On Aug 7, 3:24=A0pm, 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
> =A0 module_function
> =A0 def a
> =A0 =A0 b
> =A0 end
>
> =A0 private
> =A0 def b
> =A0 =A0 #helper method
> =A0 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?
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.