The string class has a couple of methods listed in ruby-doc such as:
String#toutf8 → string
or
String#tosjis → string
That's diferent than how they list most of the other methods, e.g.:
str.strip => new_str
I'm afraid I have no idea how to call a method like toutf8. I don't
know what's up with # sign, either. Anyone willing to explain this to a
novice like me?
The hash notation is used to indicate an instance method. In this
case, #toutf8 is a method that returns a string. The "str.strip =>
new_str" form is showing the same thing, but by way of example. It's
just an inconsistency in the docs.
We use a hash to signify instance methods because you call class
methods with a .:
String.new
String#split
the first is referring to the 'new' method on class String, the second
is referring to the instance method 'split' on strings. So, to call a
method that is documented as Class#method, you would create an
instance of that class and then call it in the normal way.
In this case, you'd do:
"some string goes here".toutf8
Ben
···
On Sun, Feb 14, 2010 at 9:58 AM, Raul Jara <raul.c.jara@gmail.com> wrote:
The string class has a couple of methods listed in ruby-doc such as:
String#toutf8 → string
or
String#tosjis → string
That's diferent than how they list most of the other methods, e.g.:
str.strip => new_str
I'm afraid I have no idea how to call a method like toutf8. I don't
know what's up with # sign, either. Anyone willing to explain this to a
novice like me?
It appears to be a method that comes from the Kconv module. Trying to
require 'kconv' and see if you get it. I don't have 1.9 here to try,
but that works on 1.8.
One of the problems with the built-in documentation is that sometimes
when a package adds methods to existing classes, they get mixed up
with the methods that were there to begin with. That's very likely
what's happening here.
Ben
···
On Sun, Feb 14, 2010 at 10:47 AM, Raul Jara <raul.c.jara@gmail.com> wrote:
Thanks for the reply. Any ideas as to why, when I try that out, I get a
method missing, even though the method shows up in the 1.9
documentation?
It appears to be a method that comes from the Kconv module. Trying to
require 'kconv' and see if you get it. I don't have 1.9 here to try,
but that works on 1.8.
One of the problems with the built-in documentation is that sometimes
when a package adds methods to existing classes, they get mixed up
with the methods that were there to begin with. That's very likely
what's happening here.
Ben
That was it. Many thanks. What an unfortunate quirk of the
documentation.