0

我正在编写一个需要 config.ru 文件才能启动 sinatra 应用程序的 gem。我的可执行文件已安装,但当我查看我的 gem 的存储速度时未安装 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 后没有 config.ru 文件的迹象(使用rake install命令)

$ 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
4

1 回答 1

0

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

所以我发现了在 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 中。

于 2012-09-24T05:36:14.767 回答