[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

module_function

Patrick Li

8/7/2008 7:24:00 PM

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-....

1 Answer

Trans

8/7/2008 10:04:00 PM

0



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.