나는 루비를 공부하고있다. Ruby가 스몰 토크의 영향을 크게 받았다는 것을 알고 있습니다. 스몰 토크 IDE는 이미지 기반 지속성을 제공하므로 실행중인 이미지에서 메서드와 클래스를 추가 할 수 있습니다.irb에서 메소드와 클래스를 만들고 저장하는 방법은 무엇입니까?
루비의 irb
에서 동일한 작업을 할 수 있습니까?
나는 루비를 공부하고있다. Ruby가 스몰 토크의 영향을 크게 받았다는 것을 알고 있습니다. 스몰 토크 IDE는 이미지 기반 지속성을 제공하므로 실행중인 이미지에서 메서드와 클래스를 추가 할 수 있습니다.irb에서 메소드와 클래스를 만들고 저장하는 방법은 무엇입니까?
루비의 irb
에서 동일한 작업을 할 수 있습니까?
아니, 그건 작은 이야기 일 뿐이야. 그러나 maglev ruby을 사용하면 smalltalk VM을 다시 얻을 수 있습니다. pry 및 해당 edit
명령을 사용하여 디스크의 코드를 편집 할 수 있으며 쉘이 다시로드를 담당합니다. 하지만 세션을 저장할 수는 없으며 디스크에 쓴 코드 만 저장할 수 있습니다.
@Tass는 약간 잘못되었습니다. Pry을 사용하면 콘솔에 작성한 메소드를 실제로 편집 할 수 있지만 메소드 만 편집 할 수 있습니다. 예 :
pry(main)> def foo
pry(main)* "bar"
pry(main)* end
=> nil
pry(main)> edit-method foo
=> nil
## launches editor
pry(main)> class Foo
pry(main)* def bar
pry(main)* "qux"
pry(main)* end
pry(main)* end
=> nil
pry(main)> edit-method Foo#bar
=> nil
## launches editor
두 경우 모두 작동하므로 편집기에서 메서드를 저장하고 수정할 수 있습니다. 그러나 당신은 할 수 없어. edit-class Foo
.
그것은 비록 적어도 하나 개의 제한이 있습니까 :
pry(main)> class Foo; def bar; "baz" end end
=> nil
pry(main)> edit-method Foo#bar
Error: Pry can only patch methods created with the `def` keyword.
이상한입니다.
). '평범한'파일 기반 방식으로 지불하는 가격입니다. 개발 모델 :) –
실은 어쩌면 스몰 토크로 전환해야 할 때가 있습니다. 루비는 그다지 쓸모가 없습니다. –
"MagLev 1.0.0은 2011 년 10 월 31 일에 출시되었습니다." - http://maglev.github.com/ –
Gemstone의 서버 라이센스없이 Maglev를 사용할 수 있습니까? – Eonil
GemStone/S가 MagLev를 사용하려면 서버 라이센스가 필요하지 않습니다. 지금까지 GemStone 서버에 대한 제한 사항은 GLASS와 동일합니다 (http://seaside.gemstone.com/docs/GLASS-Announcement.htm – martineg