Самый крутой гаджет для просмотра кода, который я нашел до сих пор, - pry
:
http://pry.github.com/
Это irb
замена с большим количеством вкусностей. Пример сеанса, чтобы вы могли видеть, как вы можете просматривать код с ним (и вы также увидите, что он может показать C-реализацию класса):
> pry
pry(main)> show-
show-command show-doc show-input show-method show-source
pry(main)> show-source Array
From: object.c in Ruby Core (C Method):
Number of lines: 6
static VALUE
rb_f_array(obj, arg)
VALUE obj, arg;
{
return rb_Array(arg);
}
pry(main)> cd Array
pry(Array):1> show-source each
From: array.c in Ruby Core (C Method):
Number of lines: 12
VALUE
rb_ary_each(ary)
VALUE ary;
{
long i;
RETURN_ENUMERATOR(ary, 0, 0);
for (i=0; i<RARRAY(ary)->len; i++) {
rb_yield(RARRAY(ary)->ptr[i]);
}
return ary;
}
pry(Array):1>
Pry может, конечно, также перечислить источник классов Ruby.
Другим полезным инструментом для просмотра C-источника для Ruby является перекрестная ссылка на код Ruby:
http://rxr.whitequark.org/
Однако сейчас, похоже, он падает, но, надеюсь, скоро снова будет.