1

我有一个可以运行的不错的小.ru文件,rackup但我希望能够将它作为 gem 发布。我假设我可以将它移动到lib目录并将其添加到我的目录中,gemspec但我还需要做什么才能在安装 gem 后运行它?

4

2 回答 2

2

Gemspec+正确的目录结构+(最重要的是)将启动您的应用程序(run可能带有)的脚本放入bin/目录中。

更多关于 gem 二进制文件的细节在这里

更新

根据要求提供示例。我制作了一个名为agent取决于sinatra(它也取决于rack)的宝石。它有以下定义Agent::Server

module Agent
  # Your code goes here...
  class Server <  ::Sinatra::Base

    get '/sync' do
        [200, "yahoo!"]
    end
  end

我还创建了名为test以下内​​容的文件:

#!/usr/bin/env ruby

require "rubygems"
require "agent"

Rack::Handler::WEBrick.run(
  Agent::Server.new,
  :Port => 9000
)

然后,如果我跑了chmod 0755 test,然后./test,我可以去http://localhost:900/sync看看yahoo!

于 2013-07-21T19:02:56.117 回答
0

Here's what I ended up with:

#!/usr/bin/env ruby

require 'rack'
require 'illusionist'

options = {
  :Host => '127.0.0.1',
  :Port => '8080'
}

merlin = Illusionist.new

Rack::Handler::Thin.run(merlin, options) do |server|
  [:INT, :TERM].each { |sig| trap(sig) { server.stop } }
end

I renamed my .ru file to .rb and then launched it with the above code. Thank you @Anton for getting me started.

于 2013-08-04T06:15:08.380 回答