Forum: Ruby ask ri for the other squeeze

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Fbb4d027695dfdf76bf448b15d7e306a?d=identicon&s=25 matt neuburg (Guest)
on 2009-02-21 18:15
(Received via mailing list)
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.
245a6d22816ecaeac1c9080ad183b859?d=identicon&s=25 badboy (Guest)
on 2009-02-21 18:26
(Received via mailing list)
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
Bec38d63650c8912b6ba9b557fb953b9?d=identicon&s=25 Roger Pack (rogerdpack)
on 2009-02-21 18:35
> but I prefer fastri over ri, because....it's *faster* =D
> http://eigenclass.org/hiki/fastri

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>
Fbb4d027695dfdf76bf448b15d7e306a?d=identicon&s=25 matt neuburg (Guest)
on 2009-02-21 19:12
(Received via mailing list)
badboy <badboy@heartofgold.co.cc> 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
Fbb4d027695dfdf76bf448b15d7e306a?d=identicon&s=25 matt neuburg (Guest)
on 2009-02-21 19:14
(Received via mailing list)
Roger Pack <rogerpack2005@gmail.com> 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.
Bec38d63650c8912b6ba9b557fb953b9?d=identicon&s=25 Roger Pack (rogerdpack)
on 2009-02-21 19:15
> 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
58479f76374a3ba3c69b9804163f39f4?d=identicon&s=25 Eric Hodel (Guest)
on 2009-02-25 20:31
(Received via mailing list)
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.
58479f76374a3ba3c69b9804163f39f4?d=identicon&s=25 Eric Hodel (Guest)
on 2009-02-25 20:32
(Received via mailing list)
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
Fbb4d027695dfdf76bf448b15d7e306a?d=identicon&s=25 matt neuburg (Guest)
on 2009-02-26 02:25
(Received via mailing list)
Eric Hodel <drbrain@segment7.net> wrote:

> without documentation.
Good call! That worked. Thanks! m.
5a837592409354297424994e8d62f722?d=identicon&s=25 Ryan Davis (Guest)
on 2009-02-26 09:53
(Received via mailing list)
On Feb 25, 2009, at 11:29 , Eric Hodel 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?
58479f76374a3ba3c69b9804163f39f4?d=identicon&s=25 Eric Hodel (Guest)
on 2009-02-26 21:12
(Received via mailing list)
On Feb 26, 2009, at 00:51, Ryan Davis wrote:
> On Feb 25, 2009, at 11:29 , Eric Hodel 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.
This topic is locked and can not be replied to.