Ruby → RuGUI решает проблему GUI на Ruby!
Я не раз в своём бложике
RuGUI — фреймворк для разработки десктопных приложений на Ruby, созданный под сильным влиянием (неожиданно)
Фреймворк изначально базировался на интерфейсе
Для установки достаточно иметь в наличии соответствующие привязки к GTK2 или Qt и поставить gem:
eveel@notazik{~}% sudo gem install rugui
[sudo] password for eveel:
Successfully installed thor-0.13.4
Successfully installed rugui-1.5.0
2 gems installed
Installing ri documentation for thor-0.13.4...
Installing ri documentation for rugui-1.5.0...
Installing RDoc documentation for thor-0.13.4...
Installing RDoc documentation for rugui-1.5.0...
После этого создаём приложение:
eveel@notazik{~/Work}% rugui rugui-test
create
create README
create Rakefile
...
create spec
create spec/spec_helper.rb
create spec/rcov.opts
create spec/spec.opts
В параметрах командной строки можно выбрать как инструмент тестирования, так и адаптер к фреймворку (сейчас доступны
Что же нам насоздавал rugui?
eveel@notazik{~/Work/rugui-test}% ls -l
итого 36
drwxr-xr-x 6 eveel eveel 4096 Апр 12 00:50 app
drwxr-xr-x 2 eveel eveel 4096 Апр 12 00:50 bin
drwxr-xr-x 3 eveel eveel 4096 Апр 12 00:50 config
drwxr-xr-x 3 eveel eveel 4096 Апр 12 00:50 lib
drwxr-xr-x 2 eveel eveel 4096 Апр 12 00:50 log
-rw-r--r-- 1 eveel eveel 153 Апр 12 00:50 Rakefile
-rw-r--r-- 1 eveel eveel 50 Апр 12 00:50 README
drwxr-xr-x 2 eveel eveel 4096 Апр 12 00:50 spec
drwxr-xr-x 2 eveel eveel 4096 Апр 12 00:50 vendor
Запустим приложение:
Довольно мило. Внутреннее устройство приложения очень похоже на структуру типичного Rails-приложения: контроллеры, модели, виды, к ним добавляется понятие «ресурса» — описания UI окон, значки, картинки, стили, и так далее.
В принципе, теперь есть решение, на котором мне не стыдно делать новый Monethus. Да, раньше собирался делать это на Ruby/GTK2, но от этого дела у меня руки опускались: приходилось самому строить на его основе MVC.
Теперь, когда велосипед изобретать не нужно, можно сосредоточиться на реальной работе.
- +8
- eveel
- 11 апреля 2010, 23:30
Основная проблема в упаковке приложения в установщик (Win32) или пакет (никсы). Этот вопрос уже стоит в issues проекта на GitHub и в своё время решится.