Searchable Rails API Doc


#1

I’ve been using rails and rails’ doc for quite a while now. And I
always missed the search feature in docs. IMHO browser search in page
is not the best solution. So i’ve spent this weekend trying to improve
things a bit.
This is more a proof of concept than a final product.
http://voloko.ru/sdoc/rails/
and on github: http://github.com/voloko/sdocrails/tree/master (custom
rdoc generator and template)
Any feedback is appreciated. Thanks


#2

Hi,

it looks great. one small issue - try to search ‘link_to’ and the last
result item is:

secret_key_generator.rb
railties/lib/rails_generator/secret_key_generator.rb

which has nothing to do with link_to … see how did you perform the
search :slight_smile:

tom

voloko wrote:

Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache

www.meinlschmidt.com www.maxwellrender.cz www.lightgems.cz


#3

Very nice.


#4

i like it!

i assume you guys know about www.railsbrain.com? maybe it has some
good ideas for this project


#5

I use the command ‘sdoc’ to generate searchable doc for ruby1.8 and it
gets wrong when generating SHTML. The error report is

/lib/sdoc/generators/shtml_generator.rb:282:in to_json': source sequence is illegal/malformed (JSON::GeneratorError) ../lib/sdoc/generators/shtml_generator.rb:282:ingen_search_index’

can it be fixed?


#6

swachian wrote:

I use the command ‘sdoc’ to generate searchable doc for ruby1.8 and it
gets wrong when generating SHTML. The error report is

/lib/sdoc/generators/shtml_generator.rb:282:in to_json': source sequence is illegal/malformed (JSON::GeneratorError) ../lib/sdoc/generators/shtml_generator.rb:282:ingen_search_index’

can it be fixed?

Yep. Set
$KCODE = ‘UTF-8’ in your Rakefile (that’s the way rails does)
or reinstall the gem (it now uses -KU ruby option by default)


#7

It has all the letters from “link_to”
railties/lib/rails_generator/secret_k</
b>ey_generator.rb

It tries to find by exact match first (so link_to is always above) and
then resorts to textmate-like matching (to find password() by
“pswd”).