RubyRuGUI решает проблему GUI на Ruby!

Первый пост на опенлайфе, Ruby FTW.

Я не раз в своём бложике грустно рассуждал на тему построения графических приложений на Ruby и сегодня увидел замечательную библиотеку RuGUI. Теперь будет немного веселее и радостнее.

RuGUI — фреймворк для разработки десктопных приложений на Ruby, созданный под сильным влиянием (неожиданно) Ruby on Rails.

Фреймворк изначально базировался на интерфейсе Ruby/GTK2, но в данный момент ребята перешли на механизм адаптеров, в результате вся функциональность по отрисовке и компоновке виджетов перекладывается на адаптер GTK+ или Qt, а вся логика и построение форм реализуется в пользовательском приложении. Честно сказать, не знаю, является ли оно UI Toolkit Agnostic, но идея явно хороша.

Для установки достаточно иметь в наличии соответствующие привязки к 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

В параметрах командной строки можно выбрать как инструмент тестирования, так и адаптер к фреймворку (сейчас доступны Qt, GTK+ и Rubygame).

Что же нам насоздавал 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

Комментарии (2)

  • avatar
  • fog
  • 12 апреля 2010, 16:52
  • #
  • 0
А как с переносимостью? Насколько трудно заставить работать такое графическое приложение на Win/Mac?
Теоретически, под Mac OS X должно работать, биндинги есть. Под Win32 ситуация немного хуже, но тоже должно.

Основная проблема в упаковке приложения в установщик (Win32) или пакет (никсы). Этот вопрос уже стоит в issues проекта на GitHub и в своё время решится.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.