メイン コード REPL エディターの Pry を試しています。
これは私が探していたものに非常に近いことがわかりましたが、使い方がよくわかりません。各メソッド (または他のメンバー) をクラスに追加/変更/削除する方法を知りたいです。
これを試したところ、
➜ ~ pry
[1] pry(main)> class AAA
[1] pry(main)* def bbb
[1] pry(main)* "ccc"
[1] pry(main)* end
[1] pry(main)* end
=> nil
[2] pry(main)> cd AAA
[3] pry(AAA):1> ls
AAA#methods: bbb
locals: _ __ _dir_ _ex_ _file_ _in_ _out_ _pry_
[4] pry(AAA):1> def xxx
[4] pry(AAA):1* "yyy"
[4] pry(AAA):1* end
=> nil
[5] pry(AAA):1> def xxx
[5] pry(AAA):1* "zzz"
[5] pry(AAA):1* end
=> nil
[6] pry(AAA):1> cd ..
[7] pry(main)> Pry.WrappedModule(AAA).source
=> "class AAA\n def bbb\n \"ccc\"\n end\nend\ndef xxx\n \"yyy\"\nend\ndef xxx\n \"zzz\"\nend\n"
[8] pry(main)> AAA.new.xxx
=> "zzz"
[9] pry(main)>
思った通りにうまくいきました。xxx
ただし、ソースコードにはメソッドの定義が重複しています。古い方 (または両方) を消去したい場合、どうすればよいですか? また、新しいメソッドに交換せずに既存のメソッド (または他のメンバー) を削除したい場合は、どうすればよいですか?
PS私は主に、メモリとディスクの間でクラスのソースコードを編集、保存、および復元するためにこれを行っています。(一種の画像ベースの永続)