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, phd = matt@tidbits.com, http://www.tidbits.com/matt/
Leopard - http://www.takecontrolbooks.com/leopard-customizing.html
AppleScript - http://www.amazon.com/gp/product/0596102119
Read TidBITS! It's free and smart. http://www.tidbits.com

matt neuburg schrieb:

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.

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
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>

--
Posted via http://www.ruby-forum.com/\.

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

···

badboy <badboy@heartofgold.co.cc> wrote:

matt neuburg schrieb:
> 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.
>
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*

--
matt neuburg, phd = matt@tidbits.com, Matt Neuburg’s Home Page
Leopard - http://www.takecontrolbooks.com/leopard-customizing.html
AppleScript - http://www.amazon.com/gp/product/0596102119
Read TidBITS! It's free and smart. http://www.tidbits.com

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 Pack <rogerpack2005@gmail.com> wrote:

> 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"]

--
matt neuburg, phd = matt@tidbits.com, Matt Neuburg’s Home Page
Leopard - http://www.takecontrolbooks.com/leopard-customizing.html
AppleScript - http://www.amazon.com/gp/product/0596102119
Read TidBITS! It's free and smart. http://www.tidbits.com

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 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...?

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

···

--
Posted via http://www.ruby-forum.com/\.

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.

···

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

Roger Pack <rogerpack2005@gmail.com> wrote:

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"]

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.

Good call! That worked. Thanks! m.

···

Eric Hodel <drbrain@segment7.net> wrote:

> 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.

--
matt neuburg, phd = matt@tidbits.com, Matt Neuburg’s Home Page
Leopard - http://www.takecontrolbooks.com/leopard-customizing.html
AppleScript - http://www.amazon.com/gp/product/0596102119
Read TidBITS! It's free and smart. http://www.tidbits.com

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

···

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.

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.

···

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?