我正在写一个宝石,需要一个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
命令)
$ 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
答案 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中。