2013-10-10 2 views
0

주 코드 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 메서드의 중복 된 정의가 포함되어 있습니다. 나이 든 사람 (또는 둘 다)을 지우려면 어떻게해야합니까? 또한 기존 방법 (또는 다른 구성원)을 새 것으로 바꾸지 않고 제거하려는 경우 어떻게 할 수 있습니까?

P. 메모리와 디스크 사이의 클래스 소스 코드를 편집, 저장 및 복원하기 위해 주로이 작업을 수행하고 있습니다. (지속적인 이미지 기반의 종류)

답변

0

답변을 찾았습니다. undef 명령을 사용하십시오.

[11] pry(main)> cd AAA 
[13] pry(AAA):1> ls 
AAA#methods: bbb xxx 
locals: _ __ _dir_ _ex_ _file_ _in_ _out_ _pry_ 
[14] pry(AAA):1> undef xxx 
=> nil 
[15] pry(AAA):1> ls 
AAA#methods: bbb 
locals: _ __ _dir_ _ex_ _file_ _in_ _out_ _pry_ 
[16] pry(AAA):1> cd .. 
[17] pry(main)> Pry.WrappedModule(AAA).source 
=> "class AAA\n def bbb\n \"ccc\"\n end\nend\n" 
[18] pry(main)> 
관련 문제