Настройка Sinatra среды на лету

Я успешно написал небольшое приложение Sinatra и уже успешно развернул его на heroku.

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

В настоящее время я могу использовать любой из этих вариантов. Когда я меняю свой config.ru на следующие значения:

require 'rubygems'
require 'sinatra'
require 'sinatra/reloader'
require "./calc.rb"

enable :logging
set :environment, :development
set :port, 4567

я могу запускать его локально (на порту 4567) через ruby ​​config.ru . Когда я меняю config.ru на этот:

require 'rubygems'
require 'sinatra'
require 'sinatra/reloader'
require "./calc.rb"

enable :logging
set :environment, :production
set :port, 4567
run Sinatra::Application

Я могу запустить его на Heroku (на порту 80).

Но я не могу использовать одну и ту же конфигурацию как для разработки, так и для производства.

Я бы хотел иметь что-то вроде:

ruby ​​config. ru dev для разработки и ruby ​​config.ru для производства.

Дополнительная информация:

Когда я пытаюсь запустить производственный config.ru на моем локальном компьютере, я получаю:

$ ruby config.ru
(eval):2:in `method_missing': undefined method `run' for main:Object (NoMethodError)
        from (eval):4:in `__send__'
        from (eval):4:in `method_missing'
        from config.ru:10
18
задан leifg 29 April 2011 в 12:33
поделиться