# Where is the old irb-tools's rtags.rb, or another decent tag

**URL:** <https://www.ruby-forum.com/t/where-is-the-old-irb-toolss-rtags-rb-or-another-decent-tag/59145>\
**Category:** Ruby\
**Created:** [April 29, 2006, 1:42am UTC](https://www.ruby-forum.com/t/where-is-the-old-irb-toolss-rtags-rb-or-another-decent-tag/59145 "2006-04-29T01:42:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![samrus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecd19e/32.png) [@samrus](https://www.ruby-forum.com/u/samrus)\
**Post date:** [April 29, 2006, 1:42am UTC](https://www.ruby-forum.com/t/where-is-the-old-irb-toolss-rtags-rb-or-another-decent-tag/59145/1 "2006-04-29T01:42:56Z")

</div>

I’m looking for tagging of constants, classes, modules, and methods,  
and particularly for qualified tags (so MyClass#to\_s and YourClass#to\_s  
are different tags).

I know about the rtags reference in the Pickaxe books, that program has  
vanished from the net.

I also know about exhuberant ctags, it only tags classes, module, and  
methods, and doesn’t have qualified tags, which is a killer in any  
project with more than a few classes.

Does anybody have a copy of the pre-merged-with-ruby irb-tools project  
hanging around? I’d really, really like to get a hold of that rtags.rb  
mentioned in the pickaxe, if I had a copy I might be able to get tags  
working!

Cheers,  
Sam

For those not familiar with how tags works with languages that are  
supported really well, like C++, here is an example.

* * *

module Foo  
class Aclass  
ACONST = 1

```
	def to_s
	end
end

```

end

## module Bar class Aclass ACONST = 1 def to\_s end end end

Exhuberant ctags generates this for the above example:

## — tags — … !\_TAG\_PROGRAM\_VERSION 5.5.4 // Aclass ex.rb /^ class Aclass$/;" c Bar ex.rb /^module Bar$/;" m Foo ex.rb /^module Foo$/;" m to\_s ex.rb /^ def to\_s$/;" f

I want all the tags:

## — tags — Aclass … Aclass.to\_s ACONST Bar … Bar.Aclass … Bar.Aclass.to\_s … Bar.ACONST Foo … Foo.Aclass … Foo.Aclass.to\_s … Foo.ACONST to\_s …

So I can do a tag jump to Aclass.to\_s and go the right one.

In case you wonder, you can get the above for C++ and Java using “ctags  
–extra=+q”, but not for ruby.
