Sinatra + Bundler?

Некоторое время назад я записал быстрый и грязный exe, который обновит # версии в assemblyinfo. {Cs/vb} - Я также использовал rxfind.exe (простой и мощный находящийся в regex поисковый инструмент замены), чтобы сделать обновление из командной строки как часть процесса сборки. Несколько других подсказок helpfule:

  1. разделяют assemblyinfo на части продукта (название компании, версия, и т.д.) и блок определенные части (имя сборки и т.д.). См. здесь
  2. Также - я использую подрывную деятельность, таким образом, я нашел полезным установить номер сборки на число пересмотра подрывной деятельности, таким образом, делающее ее действительно легкий всегда возвратиться к кодовой базе, которая генерировала блок (например, 1.4.100.1502 был создан из пересмотра 1502).

37
задан Arslan Ali 28 April 2015 в 11:20
поделиться

3 ответа

Я считаю, что лучший способ описан здесь в блоге EngineYard:

# This makes sure the bundled gems are in our $LOAD_PATH
require File.expand_path(File.join(File.dirname(__FILE__), 'vendor', 'gems', 'environment'))

# This actually requires the bundled gems
Bundler.require_env

class MyApp < Sinatra::Base
  # stuff
end
11
ответ дан 27 November 2019 в 04:33
поделиться

Внутри вашего приложения Sinatra вам просто нужно потребовать установку пакета:

require "bundler/setup"
require "sinatra"

get "/" do
  "Hello world!"
end

В качестве альтернативы, если вы не хотите добавлять дополнительные require "bundler / setup" в верхней части приложения, вы можете вместо этого вызвать sinatra через bundle exec (например, bundle exec ruby ​​myapp.rb )

Предполагается, что у вас есть Gemfile в корне вашего приложения. Это может выглядеть так:

source "http://rubygems.org"

gem "sinatra"

Это также предполагает, что вы уже установили связку ( gem install bundler ) и выполнили bundle install для установки всех зависимостей гемов.

47
ответ дан 27 November 2019 в 04:33
поделиться

Поскольку мой первоначальный ответ был довольно старым, но, похоже, этой теме все еще уделяется внимание, вот последняя версия установки bundler/sinatra, которая покроет большинство случаев использования:

Минимальный config. ru

require './my_sinatra_app'
run MySinatraApp

Файл окружения env.rb, который требует всех gems (также поддерживает загрузку группы текущего окружения):

require 'bundler/setup'

APP_ENV = ENV["RACK_ENV"] || "development"

Bundler.require :default, APP_ENV.to_sym

Затем ваш файл app (требующий окружения) с вашим приложением sinatra (Sinatra::Base):

require_relative 'env'

class MyApp < Sinatra::Base
  get "/" do
    "hello world"
  end
end

Запустите ваш сервер разработки с rackup, и Sinatra будет загружена через Bundler, ваше приложение будет доступно с http://localhost:9292.

$ rackup

или bundle exec rackup при необходимости

Убедитесь, что у вас есть Gemfile, подобный следующему, и вы выполнили команду bundle перед запуском приложения

source "https://rubygems.org"

gem "sinatra"

gem "puma" # a better rack server than the default webrick
10
ответ дан 27 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: