Ask ri for the other squeeze

First off, may I say that ri, with its recent improvements, is now
useful to me for the first time since I started using ruby? With the
spaces after the commas, the listing of a class’s superclass, the
ability to search up the class hierarchy, and so forth, I can now
usually find what I’m looking for and read the result.

That said, there remain a few edge cases on my machine where ri seems to
break down. An example is String#squeeze, which comes up with an empty
description:

--------------------------------------------------------- String#squeeze
squeeze(del=nil)

 From /usr/local/share/ri/1.8/site/String/cdesc-String.yaml

 [no description]

There is, however, another String#squeeze that does have a
description. Where there’s a choice like this, I’d like to see the one
with the description. I can say:

$ ri --no-site String#squeeze

and that does work, but it also causes a huge delay both now while the
cache is rebuilt and on the next ri search without --no-site while the
cache is rebuilt again. What I’d really like is syntax for choosing
between different String#squeeze. For example, maybe the -i interactive
option could give me the ability to enter numbers?

m.

matt neuburg schrieb:

--------------------------------------------------------- String#squeeze
$ ri --no-site String#squeeze

and that does work, but it also causes a huge delay both now while the
cache is rebuilt and on the next ri search without --no-site while the
cache is rebuilt again. What I’d really like is syntax for choosing
between different String#squeeze. For example, maybe the -i interactive
option could give me the ability to enter numbers?

m.

hm…I have no problems with String#squeeze
not for ruby 1.8.7 nor for 1.9.1

but I prefer fastri over ri, because…it’s faster =D
http://eigenclass.org/hiki/fastri

but I prefer fastri over ri, because…it’s faster =D
eigenclass.org

Note also that you can lookup things in irb

irb(main):002:0> help “String#chars”
----------------------------------------------------------- String#chars
str.chars => anEnumerator
str.chars {|substr| block } => str

 Returns an enumerator that gives each character in the string. If a
 block is given, it iterates over each character in the string.

    "foo".chars.to_a   #=> ["f","o","o"]

=> nil
irb(main):003:0>

badboy [email protected] wrote:

hm…I have no problems with String#squeeze
not for ruby 1.8.7 nor for 1.9.1

but I prefer fastri over ri, because…it’s faster

Faster, but long ago broken OMM. It stopped working one day (after a
rdoc update, I think) and just never worked again. It doesn’t look very
supported and I assume it is no longer maintained…?

I am still back at 1.8.6.

$ qri String
/usr/local/lib/ruby/1.8/yaml.rb:133:in transfer': invalid subclass (TypeError) from /usr/local/lib/ruby/1.8/yaml.rb:133:in node_import’
from /usr/local/lib/ruby/1.8/yaml.rb:133:in load' from /usr/local/lib/ruby/1.8/yaml.rb:133:in load’
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:72:in
deserialize' from /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:354:in get_class’
from /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:354:in
open' from /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:354:in get_class’
from /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:352:in
each' from /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:352:in get_class’
from
/usr/local/lib/ruby/site_ruby/1.8/fastri/ri_service.rb:209:in info' from /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_service.rb:422:in capture_stdout’
from
/usr/local/lib/ruby/site_ruby/1.8/fastri/ri_service.rb:208:in info' from /usr/local/bin/qri:342 from /usr/local/bin/qri:337:in each’
from /usr/local/bin/qri:337

irb(main):001:0> help “String#squeeze”
More than one method matched your request. You can refine
your search by asking for information on one of:

 String#squeeze!, String#squeeze, String#squeeze!, String#squeeze

Now what? m.

looks like a bug. repost to ruby core?
-=r

On Feb 21, 2009, at 10:10, matt neuburg wrote:

str.chars                   => anEnumerator

irb(main):001:0> help “String#squeeze”
More than one method matched your request. You can refine
your search by asking for information on one of:

String#squeeze!, String#squeeze, String#squeeze!, String#squeeze

Now what? m.

You seem to have two sets of ri data installed. Try locate cdesc-
String.yaml to see where the two sets live, then delete the one
without documentation.

Roger P. [email protected] wrote:

 Returns an enumerator that gives each character in the string. If a
 block is given, it iterates over each character in the string.

    "foo".chars.to_a   #=> ["f","o","o"]

But what I asked about was String.squeeze. Same problem:

irb(main):001:0> help “String#squeeze”
More than one method matched your request. You can refine
your search by asking for information on one of:

 String#squeeze!, String#squeeze, String#squeeze!, String#squeeze

Now what? m.

Eric H. [email protected] wrote:

without documentation.
Good call! That worked. Thanks! m.

On Feb 25, 2009, at 11:29 , Eric H. wrote:

You seem to have two sets of ri data installed. Try locate cdesc-
String.yaml to see where the two sets live, then delete the one
without documentation.

maybe our next tweak on gem check should do this check too?

On Feb 21, 2009, at 10:10, matt neuburg wrote:

but I prefer fastri over ri, because…it’s faster

Faster, but long ago broken OMM. It stopped working one day (after a
rdoc update, I think) and just never worked again. It doesn’t look
very
supported and I assume it is no longer maintained…?

RDoc 2 has a fast ri, from cache:

$ time ri String#squeeze > /dev/null

real 0m0.398s
user 0m0.339s
sys 0m0.054s

On Feb 26, 2009, at 00:51, Ryan D. wrote:

On Feb 25, 2009, at 11:29 , Eric H. wrote:

You seem to have two sets of ri data installed. Try locate cdesc-
String.yaml to see where the two sets live, then delete the one
without documentation.

maybe our next tweak on gem check should do this check too?

This one seemed to be an artifact of ruby’s make install-doc, I’m
unsure how to reproduce it.

RDoc now only looks in the latest gem dirs for documentation, so this
shouldn’t happen for ri for gems even with multiple versions.