Ruby: Сохранить определения классов / методов во время выполнения - PullRequest
3 голосов
/ 09 октября 2011

Допустим, я работаю в IRB, экспериментирую и постепенно создаю новые классы и методы.Или, скажем, обычный сценарий, который я пишу (вне IRB), постепенно создает некоторые классы / методы.

Теперь я хочу сохранить то, что построил.

Есть ли простой способ автоматическипроанализировать классы / методы среды выполнения и превратить их в обычные определения классов и определения методов?

Ответы [ 3 ]

1 голос
/ 10 октября 2011

Если вы используете ruby ​​1.8, вы можете использовать ruby2ruby для этого.

В противном случае, может быть, sourcify поможет. Кажется, это работает только для методов.

1 голос
/ 10 октября 2011

Попробуйте pry , вы никогда не вернетесь в IRB. Вы можете использовать pry в качестве отладчика, он работает очень хорошо и имеет несколько замечательных функций, таких как:

1.9.2 (main):0 > show-method Array#group_by

From: enum.c in Ruby Core (C Method):
Number of lines: 13

static VALUE
enum_group_by(VALUE obj)
{
    VALUE hash;

    RETURN_ENUMERATOR(obj, 0, 0);

    hash = rb_hash_new();
    rb_block_call(obj, id_each, 0, 0, group_by_i, hash);
    OBJ_INFECT(hash, obj);

    return hash;
}

Is также имеет команду edit-method . Представь, что ты можешь с этим сделать.

Если вам нужно строго связанное с IRB решение, единственное, что мне приходит в голову, это наброски .

0 голосов
/ 10 октября 2011

Если вы используете Pry вместо IRB, вы можете сделать это, фактически Pry был несколько разработан для этого.

Просмотрите команды edit-method и edit Pry, здесь: https://github.com/pry/pry/wiki/Editor-integration

Также смотрите скринкаст, найденный здесь: http://vimeo.com/26391171

...