私はRubyを勉強しています。私はRubyがSmalltalkの影響を強く受けていることを知っています。 Smalltalk IDEはイメージベースの永続性を提供します。つまり、実行中のイメージからメソッドやクラスを追加できます。irbでメソッドとクラスを作成して保存する方法は?
ルビーのirb
でも同じですか?
私はRubyを勉強しています。私はRubyがSmalltalkの影響を強く受けていることを知っています。 Smalltalk 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.
奇妙に。
これは、従来のファイルベース開発モデル:) –
本当に、あなたがそれを見逃したらSmalltalkに切り替えるべきときは、Rubyは貧弱な代替品です。 –
"MagLev 1.0.0は2011年10月31日にリリースされました。 - http://maglev.github.com/ –
宝石のサーバーライセンスなしでMaglevを使用できますか? – Eonil
GemStone/SでMagLevを使用するためのサーバーライセンスは必要ありません。私が知る限り、GemStoneサーバーの制限事項はGLASSと同じです - http://seaside.gemstone.com/docs/GLASS-Announcement.htm – martineg