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

标签 ruby introspection

假设我在 IRB 工作,试验并逐渐构建一些新的类和方法。或者,假设我编写的常规脚本(在 IRB 之外)逐步构建一些类/方法。

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

有没有一种简单的方法可以自动内省(introspection)运行时的类/方法并将它们变成普通的类定义和方法定义?

最佳答案

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

是有edit-method命令也。想象一下您可以用它做什么。

如果您想要一个与 IRB 严格相关的解决方案,我唯一想到的是 sketches .

关于Ruby:在运行时保存类/方法定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7706161/

相关文章:

ruby-on-rails - 什么是 "/path/to"?

ruby - 为什么 attr_accessor 定义的变量在方法中不可用?

ruby - 如何从 ruby​​ 中的字符串中提取 float ?

python - 如何在 Python 的另一个函数中找出特定函数参数的默认值?

任何人都可以推荐一种方法来编写计算结构中字段数量的函数吗?即 - 伪代码 - 'for field in struct'

ruby-on-rails - 如何覆盖 rails new/edit 表单上的标题

objective-c - Obj-C 内省(introspection) : How can a method reference its own selector?

python - 迭代动态导入的模块中定义的类

java内省(introspection)查找类的成员

Ruby 文件强制复制