我有一个我创建的Sinatra应用程序,我想将它打包为基于gem的二进制文件.
我有我的gemspec和gem设置生成一个合适的可执行文件,指向my_sinatra_app.rb(可执行)但sinatra服务器永远不会运行.任何想法为什么以及如何使它工作?
my_sinatra_app 可执行文件:
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
#
# This file was generated by RubyGems.
require 'rubygems'
version = ">= 0"
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
version = $1
ARGV.shift
end
gem 'my_sinatra_app', version
load Gem.bin_path('my_sinatra_app', 'my_sinatra_app', version)
Run Code Online (Sandbox Code Playgroud)
发现:D
您需要将Sinatra应用程序包装在类中:
class MySinatraApp < Sinatra::Application
# Stuff
end
Run Code Online (Sandbox Code Playgroud)
然后在运行应用程序的文件中,你可以做MySinatraApp.run!简单:)