Варианты распространения автономного приложения Ruby on Rails - PullRequest
18 голосов
/ 11 сентября 2008

Я разрабатываю приложение для использования Ruby on Rails, в основном в качестве предлога для изучения языка.

Это не предназначено для веб-приложения - и, возможно, я выбрал не тот язык, но ...

Насколько я понимаю, для запуска экземпляра этого приложения на чужом компьютере им потребуется установить ruby ​​на рельсы и веб-сервер (или, возможно, webrick), а также код моего приложения.

Мне просто любопытно, есть ли другие способы распространения моего приложения в качестве отдельного приложения или, возможно, просто простой способ упаковки веб-браузера и ROR вместе с моим приложением для простой одностадийной установки?

Ответы [ 7 ]

7 голосов
/ 11 сентября 2008

Лично мне никогда не нужно было этого делать. Но я наткнулся на этот урок http://www.erikveen.dds.nl/distributingrubyapplications/rails.html, который, как мне кажется, будет полезен. В руководстве рассказывается, как на самом деле преобразовать приложение rails в отдельный exe-файл.

3 голосов
/ 11 сентября 2008

Обратите внимание, что Slingshot представляется мертвым проектом (см. Комментарии). Я оставлю этот ответ здесь в исторических целях и на случай, если он вернется

Джойент Рогатка может быть хорошей ставкой.

Joyent Slingshot позволяет разработчикам развертывать приложения Rails, такие как стандартное настольное приложение, которые работают в режиме онлайн и в автономном режиме (с синхронизацией), имеют функцию перетаскивания и взаимодействия и взаимодействуют со всеми другими настольными приложениями.

С Рогаткой Джойента:

  • Создание гибридного веб / настольного приложения
  • Синхронизация данных онлайн и офлайн
  • Используйте один и тот же код для онлайн и офлайн приложений
  • Простое развертывание и обновление приложения
  • Перетаскивание в приложение и из него

Вот еще несколько ссылок, которые помогут вам с вашей оценкой и / или помогут вам начать:

2 голосов
/ 12 сентября 2008

То, как большинство людей поставляют ruby-программы, в том числе Rails-веб-приложения, в виде отдельного exe-файла - через rubyscript2exe. Они описывают, как упаковать приложение Rails в http://www.erikveen.dds.nl/distributingrubyapplications/rails.html. Ruby, Rails и все связанные библиотеки будут включены в файл EXE.

Как уже упоминалось, Ruby не обязательно является Rails, и если вам действительно нужен простой способ написать распространяемое приложение с графическим интерфейсом на Ruby, Shoes - отличное место для начала поиска.

1 голос
/ 11 сентября 2008

Вы всегда можете скомпилировать свой байт-код Ruby для JVM (через JRuby ) или байт-код .NET (через IronRuby ) для распространения среди людей, у которых есть эти виртуальные машины и не хочу устанавливать среду исполнения Ruby.

Возможно, вы захотите проверить Shoes для создания настольных приложений в Ruby. Rails действительно настроен на создание сайтов.

1 голос
/ 11 сентября 2008

Вы можете включить Ruby on Rails, заморозив его в версию Rails, которую вы хотите использовать в своем проекте. Они называют это Замораживанием. Пользователю не нужно устанавливать Rails, чтобы использовать ваше приложение. Вы можете сделать это с любой библиотекой, которую вы используете в своем проекте. Если в проекте используется библиотека, просто поместите ее в папку Vendor в своем проекте. Затем используйте инструмент, подобный тому, на который ответил @ Josh , чтобы упаковать его.

Для запуска проекта вам понадобится веб-сервер. Обойти это невозможно. В этом отношении Ruby on Rails аналогичен ASP.NET в том смысле, что он является фреймворком на стороне сервера. Сервер запускает код и выводит HTML в браузер с использованием инфраструктуры Rails.

К сожалению, вы, возможно, выбрали неверную структуру, чтобы делать то, что вы хотите. Вместо Ruby on Rails вы можете попробовать Shoes , который является основой для разработки приложений с графическим интерфейсом на Ruby.

1 голос
/ 11 сентября 2008

Gears on Rails возможно?

0 голосов
/ 11 сентября 2008

Вы конкретно не говорите, должно ли это быть приложение с графическим интерфейсом или нет. Из других ответов я бы догадался.

Поэтому вам необходимо уточнить, каковы ваши цели. RoR - это специализированная структура для веб-приложений. Если ваша цель - изучить RoR, я бы сказал, чтобы получить себе недорогой веб-хостинг и сделать себе приложение. Если ваша цель - изучить Ruby, а не обязательно Rails, то вам подойдут Shoes, IronRuby, JRuby, MacRuby и другие.

...