Ruby GUI アプリケーションを設計する最良の方法は、visualruby を使用することです。
http://visualruby.net
GUI をクラスから完全に切り離すことができます。たとえば、次のクラスの GUI を作成する場合は、邪魔することなく簡単に作成できます。
class DataObject
def initialize(name, address, email, phone)
@name = name
@address = address
@email = email
@phone = phone
end
end
このクラスをサブクラス化し、GUI を追加して、このクラスの GUI を作成します。
class DataObjectGUI < DataObject
include GladeGUI
def show()
load_glade(__FILE__) #loads glade/DataObjectGUI.glade into @builder
set_glade_all() #populates glade controls with insance variables from DataObject
show_window()
end
end
GladeGUI インターフェイスには、すべての GUI マジックが含まれています。load_glade() メソッドは、ファイル DataObject.glade をロードします。これは Gtk::EntryBoxes の名前、名前、住所、電話番号、電子メールを含むグレード フォームです。すべてのフィールドが入力されたフォームが画面に表示されます。
明らかに、show_window() はウィンドウを画面に表示します。「x」ボタンをクリックすると、GladeGUI によって破棄ウィンドウが自動的に呼び出されます。
この設計パターンは、どのクラスにも使用できます。良い例は、ActiveRecord クラスがあり、レコードを画面に表示したい場合です。上記のようにサブクラス化するだけで、編集および保存が可能になります。
この例は、visualruby.net のサンプル プロジェクトの 1 つから取られています。