如何将config.ru添加到我的宝石?

时间:2012-09-24 04:10:22

标签: ruby-on-rails ruby rubygems gem

我正在写一个宝石,需要一个config.ru文件才能启动一个sinatra应用程序。我的可执行文件已安装,但在查看我的宝石存储速度时,未安装config.ru。这是我宝石的结构

gemservice
|-- bin
|  |-- gemservice
|-- lib
|  |-- gemservice
|  |  |-- version.rb  
|  |-- gemservice.rb
|  |-- config.ru
|-- Gemfile
|-- gemservice.gemspec
|-- Rakefile


$ gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.24
  - RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.4.0]
  - INSTALLATION DIRECTORY: /Users/Armanm/.rvm/gems/ruby-1.9.3-p194
  - RUBY EXECUTABLE: /Users/Armanm/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/Armanm/.rvm/gems/ruby-1.9.3-p194/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/Armanm/.rvm/gems/ruby-1.9.3-p194
     - /Users/Armanm/.rvm/gems/ruby-1.9.3-p194@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

一旦安装了gem(使用rake install命令)

,就没有config.ru文件的迹象
$ ls -la /Users/Armanm/.rvm/gems/ruby-1.9.3-p194/gems/gemservice-0.0.1/lib/

total 8
drwxr-xr-x   4 Armanm  staff  136 24 Sep 13:52 .
drwxr-xr-x  10 Armanm  staff  340 24 Sep 13:52 ..
drwxr-xr-x   3 Armanm  staff  102 24 Sep 13:52 gemservice
-rw-r--r--   1 Armanm  staff  124 24 Sep 13:52 gemservice.rb

1 个答案:

答案 0 :(得分:0)

Oka这是一个新手问题,它有一个新手答案。

因此,我发现在gemsepc文件中列出的文件最终会被打包到gem中。更具体地说,这段代码就是这样的:

Gem::Specification.new do |gem|
  ...    

  gem.files = `git ls-files`.split($\)

  ...
end

它使用git来填充构建gem时需要打包的文件。所以确保我的config.ru文件包含的方法是确保git使用git add lib/config.ru知道它。一旦文件被添加到git,它就包含在我的gem中。