i found that rake source has got this strange one line of code
private(true)
or something, true could be another code (I don’t remember that rake
source code by heart). I’m not sure I can explain it clearly. Now I
just saw it again in time.rb file inside lib in ruby19 source code,
the code is like this
private :make_time
could anyone explain to me why this private takes an argument and what
it does?
With no arguments, sets the default visibility for subsequently
defined methods to private. With arguments, sets the named methods
to have private visibility.
module Mod
def a() end
def b() end
private
def c() end
private :a
end
Mod.private_instance_methods #=> ["a", "c"]
On 26/03/2008, Peña, Botp [email protected] wrote:
m:lib arie$ rak “private(” rake.rb
1091|private(*FileUtils.instance_methods(false))
1092|private(*RakeFileUtils.instance_methods(false))
oh wait, sorry for the noise, I know the answer! so private also
accepts an array of string values which are method names. Thanks for
the clue
Slightly more precisely (and very pedantically), private isn’t
accepting
an array in this case. The * is there to expand an array (which it
doesn’t
want) in to seperate arguments (which it likes).
Cheers,
B
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.