2011-10-09 31 views
3

因此,假設我正在IRB中工作,嘗試並逐步構建一些新的類和方法。或者,假設我編寫的一個常規腳本(IRB外部)逐步構建了一些類/方法。Ruby:在運行時保存類/方法的定義

現在我想保存我所建的東西。

是否有一種簡單的方法來自動反思運行時的類/方法並將它們轉換爲普通的類定義和方法定義?

+0

我不知道有什麼辦法做到這一點。但說實話,這聽起來很有趣,應該是可能的。不過,我不會用它來開發IRB。我真的很喜歡創造一些「智能」和「學習」的代碼。 – Koraktor

回答

1

嘗試pry,你永遠不會回到IRB。您可以使用撬作爲一個調試器,它工作得很好,有一些偉大的功能,如:

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

1

如果你使用的是紅寶石1.8,那麼你可以使用ruby2ruby

否則,也許sourcify將有所幫助。但似乎它只適用於方法。