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.
matt neuburg (Guest)
on 2009-02-21 19: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.
badboy (Guest)
on 2009-02-21 19: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
Roger P. (Guest)
on 2009-02-21 19: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>
matt neuburg (Guest)
on 2009-02-21 20:12
(Received via mailing list)
badboy <removed_email_address@domain.invalid> 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
matt neuburg (Guest)
on 2009-02-21 20:14
(Received via mailing list)
Roger P. <removed_email_address@domain.invalid> 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.
Roger P. (Guest)
on 2009-02-21 20: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
Eric H. (Guest)
on 2009-02-25 21: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.
Eric H. (Guest)
on 2009-02-25 21: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
matt neuburg (Guest)
on 2009-02-26 03:25
(Received via mailing list)
Eric H. <removed_email_address@domain.invalid> wrote:

> without documentation.
Good call! That worked. Thanks! m.
Ryan D. (Guest)
on 2009-02-26 10:53
(Received via mailing list)
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?
Eric H. (Guest)
on 2009-02-26 22:12
(Received via mailing list)
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.
This topic is locked and can not be replied to.