Передача параметров в стойку через приложение Sinatra

Я новичок в ruby, изучаю Sinatra. При создании сайта Sinatra, требующем 'sinatra' и настройке маршрутов непосредственно под ним, довольно просто и довольно хорошо документировано создание приложения, требуя 'sinatra / base' и написания класс, наследуемый от Sinatra :: Base , хотя и относительно простой, но очень плохо документирован (возможно, потому, что это довольно недавняя функция Sinatra).

И именно это я делаю. У меня нет особых проблем с частью Sinatra, однако у меня есть небольшие проблемы с частью стойки / тонкого / сервера. Очевидно, есть два способа развернуть приложение: с помощью самой Sinatra (с помощью метода run! ) и с использованием файла для установки в стойку (обычно config.ru ).

Использование Sinatra запустить! чрезвычайно интуитивно понятен и работает как шарм, но, очевидно, он не работает, если я хочу развернуть свое приложение на heroku. Фактически, почти все приложения Sinatra, с которыми я встречался на GitHub, используют файл config.ru .

Использование файла для установки в стойку может быть столь же интуитивно понятным, но я не могу понять как передать параметры из приложения Sinatra на сервер (ir: порт). Я попытался объединить параметры в массив параметров по умолчанию:

MyApp::App.default_options.merge!(
  :run  => false,
  :env  => :production,
  :port => 4567
)

run MyApp::App

, добавив параметры непосредственно в приложение:

MyApp::App.set :port, 4567
MyApp::App.set :run, false
MyApp::App.set :env, :production

run MyApp::App

, установив параметры из класса приложения:

module MyApp
  class App < Sinatra::Base
    set :port, 4567
    set :run, false
    set :env, :production

    # ...

  # config.ru
  require 'app'

  run MyApp::App

Все вышеперечисленные методы завершились неудачно, либо с отображением сообщений об ошибках, либо с помощью просто не принимая во внимание ни один из вариантов. Так есть ли способ передать параметры в Rackup / Thin / the sever через приложение Sinatra при использовании файла Rackup? Или параметры в вопросах следует передавать непосредственно в rackup / thin / the sever через параметры командной строки?

В качестве ссылки на проблему, вот небольшое приложение Sinatra, которое я создаю: https: // github .com / AzizLight / Wiki /

12
задан Robert Audi 8 December 2010 в 15:29
поделиться