# Searchable Rails API Doc

**URL:** <https://www.ruby-forum.com/t/searchable-rails-api-doc/163008>\
**Category:** Rails\
**Created:** [March 16, 2009, 3:40pm UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008 "2009-03-16T15:40:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 16, 2009, 3:40pm UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/1 "2009-03-16T15:40:37Z")

</div>

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/](http://voloko.ru/sdoc/rails/)  
and on github: [http://github.com/voloko/sdocrails/tree/master](http://github.com/voloko/sdocrails/tree/master) (custom  
rdoc generator and template)  
Any feedback is appreciated. Thanks

---

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 16, 2009, 3:48pm UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/2 "2009-03-16T15:48:15Z")

</div>

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 🙂

tom

voloko wrote:

> 

# –

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

# [www.meinlschmidt.com](http://www.meinlschmidt.com) www.maxwellrender.cz www.lightgems.cz

---

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 16, 2009, 6:45pm UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/3 "2009-03-16T18:45:47Z")

</div>

Very nice.

---

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 17, 2009, 11:26am UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/4 "2009-03-17T11:26:22Z")

</div>

i like it!

i assume you guys know about [www.railsbrain.com](http://www.railsbrain.com)? maybe it has some  
good ideas for this project

---

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 25, 2009, 3:43am UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/5 "2009-03-25T03:43:51Z")

</div>

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:in`gen\_search\_index’

can it be fixed?

---

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 25, 2009, 11:16am UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/6 "2009-03-25T11:16:17Z")

</div>

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:in`gen\_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)

---

<div class="post-metadata">

**Author:** ![voloko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@voloko](https://www.ruby-forum.com/u/voloko)\
**Post date:** [March 16, 2009, 6:46pm UTC](https://www.ruby-forum.com/t/searchable-rails-api-doc/163008/7 "2009-03-16T18:46:22Z")

</div>

It has all the letters from “link\_to”  
railties/ **l** ib/ra **i** ls\_ge **n** erator/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”).
