$ ri File::append
gives me:
File::append( file, str )
Append to a file.
CREDIT: George M.
$ri File
also shows me append as a class method.
However, my html documentation does not give this (1.8.6). Trying to use
File::append
in irb or ruby fails (no such method). Even google has no
entry for this class method.
What mistake am I making ?
Alle Thursday 18 September 2008, Nit K. ha scritto:
However, my html documentation does not give this (1.8.6). Trying to use
File::append
in irb or ruby fails (no such method). Even google has no
entry for this class method.
What mistake am I making ?
It’s part of the facets library. Unfortunately, ri doesn’t show the name
of
the file where a method or class is defined or the library or gem it
comes
from. To use that method, since it seems you already have facets
installed,
you need to do this:
require ‘rubygems’ #unless it’s already defined in the RUBYOPT
environment
#variable
require ‘facets/file/write’
File.append(file, str)
I hope this helps
Stefano
Stefano C. wrote:
It’s part of the facets library. Unfortunately, ri doesn’t show the name
Aah, thanks. Yes, I used facets last year…
However, would be grateful if you could tell me how to decide what to
use in the require statement for a facets class. Whenever i use facets,
i struggle to figure out the require statement. What is shown in the
examples often does not work.
Some while back I came upon ProgressBar. It took me a while of trying to
figure out the require.
Then Console::ANSICode gives an example: “include Console::ANSICode”
irb(main):011:0> include Console::ANSICode
NameError: uninitialized constant Console
from (irb):11
I tried many combinations, finally “require ‘facets/ansicode’” did not
give an error but still the “include Console::ANSICode” gives the error
above.
I can’t remember if I managed to make the example run or not.
(I have started with require rubygems and facets.)
On Sep 18, 3:27 am, Nit K. [email protected] wrote:
Stefano C. wrote:
It’s part of the facets library. Unfortunately, ri doesn’t show the name
Aah, thanks. Yes, I used facets last year…
However, would be grateful if you could tell me how to decide what to
use in the require statement for a facets class. Whenever i use facets,
i struggle to figure out the require statement. What is shown in the
examples often does not work.
It is:
require ‘facets/{class|module}/{method_name}’
There are some exceptions where one method is in the same file as
another (eg. write/append), but these are being worked out and should
be almost not existent in another release or two. Even so, require
‘facets’ hides all that.
Some while back I came upon ProgressBar. It took me a while of trying to
figure out the require.
Then Console::ANSICode gives an example: “include Console::ANSICode”
irb(main):011:0> include Console::ANSICode
NameError: uninitialized constant Console
from (irb):11
It’s just
require ‘facets/ansicode’
ANSICode
The Console:: namespace has been deprecated. The docs just need to be
fixed.
T.
Alle Thursday 18 September 2008, Nit K. ha scritto:
Some while back I came upon ProgressBar. It took me a while of trying to
above.
I can’t remember if I managed to make the example run or not.
(I have started with require rubygems and facets.)
According to the facets documentation, a simple
require ‘facets’
will require all the Core facets library. If you want to load only the
Core
methods for a single class (for example, the File class), you can do
require ‘facets/file’
If you want only to load a specific method, you can find the file where
it’s
defined by looking up the method you’re interested to in the facets rdoc
api
(http://facets.rubyforge.org/doc/index.html), then clicking on the “show
source” link. This will display the source code for the method. At the
top of
the source code, there’s a comment with the name of the file where the
method
is defined. This is the file you need to require. Note, however, that
that
line starts with something like ‘lib/core/facets/…/’. You should only
put
the part of the string starting with facets in your call to require.
All what I said is valid for recent versions of facets, so if you have
an old
version, you may need to update it.
Stefano
Stefano