Ruby:在运行时保存类/方法定义

3

假设我正在使用IRB进行实验,并逐渐构建一些新的类和方法。或者,假设我编写的常规脚本(在IRB之外)逐步构建了一些类/方法。

现在我想保存我所构建的内容。

有没有一种简单的方法可以自动检查运行时的类/方法并将它们转换为普通的类定义和方法定义?


我不知道任何完成这个目标的方法。但老实说,这听起来非常有趣,应该是可行的。虽然我不会用它来开发IRB,但我真的很想创造一些“智能”和“学习型”的代码。 - Koraktor
3个回答

1

试试 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;
}

它也有编辑方法命令。想象一下你可以用它做什么。

如果你想要一个严格与IRB相关的解决方案,我脑海中唯一想到的是草图


1

如果你使用的是 Ruby 1.8,你可以使用 ruby2ruby 来实现。

否则,也许 sourcify 可以帮助你。不过它似乎只适用于方法。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接