Private(true) || private :make_time, what does it do? why?

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?


blog: http://tinyurl.com/2bjgvn,
ruby: Tentang Ruby

I always thought Smalltalk would beat Java, I just didn’t know it
would be called ‘Ruby’ when it did. – Kent Beck.

From: Rie! [mailto:[email protected]]

could anyone explain to me why this private takes an argument

and what it does?

qri is your friend

botp@pc4all:~$ qri private
--------------------------------------------------------- Module#private
private => self
private(symbol, …) => self

 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"]

kind regards -botp

On 26/03/2008, Peña, Botp [email protected] wrote:

    module Mod
      def a()  end
      def b()  end
      private
      def c()  end
      private :a
    end
    Mod.private_instance_methods   #=> ["a", "c"]

if it’s only about a method then it’s trivial, what I meant was
something like this.

private(*somethingsomething)

anyone can explain it to me more clear?

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 :slight_smile:

kind regards -botp


blog: http://tinyurl.com/2bjgvn,
ruby: Tentang Ruby

I always thought Smalltalk would beat Java, I just didn’t know it
would be called ‘Ruby’ when it did. – Kent Beck.

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 :slight_smile:

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