2012-11-09 46 views
1

我有一个Ruby IronWorker,它依赖于未发布到RubyGems的私有gem。如何在IronWorker中捆绑本地gem依赖关系

有没有办法将本地mygemname-0.0.1.gem合并到我的IronWorker的.worker文件中?

我希望能够指定东西myruby.worker如下:

gem 'mygemname', '>=0.0.1', :path=> 'vendor/bundle' 

目前这款提供以下错误

.rvm/gems/ruby-1.9.3-p0/gems/iron_worker_ng-0.12.2/lib/iron_worker_ng/code/base.rb:79 :in `eval': 
    wrong number of arguments (3 for 2) (ArgumentError) 

盼望默认给出:

gem 'mygemname', '>=0.0.1' 

给出以下错误

Could not find gem 'mygemname (>= 0.0.1) ruby' in the gems available on this machine. 

我在正确的轨道试图通过.worker文件得到这个工作?或者我应该考虑指定一个自定义构建步骤?

回答

2

据我所知,现在不支持git和本地路径。 这里有办法手动包括当地的宝石: 这些行添加到.worker文件:

dir '../vendor/bundle/mygemname', '__gems__/gems' 
file '../vendor/bundle/mygemname/mygemname.gemspec', '__gems__/specifications' 
+0

我已经添加下面展示了如何处理的情况下你的未发表的宝石有依赖关系的一些细节 –

3

如果您未发布的创业板本身有依赖关系,你需要做一些按摩来得到的东西去。下面是对我的作品的技术:

mygem.worker

runtime "ruby" 

#Merge in an unpublished local gem 
dir '../opensource-cli-tools/facebook_exporter', '__gems__/gems' 
file '../opensource-cli-tools/facebook_exporter/mygem.gemspec', '__gems__/specifications' 

#Merge in a custom build script to fetch the unpublished gem's dependancies 
file "Gemfile" 
file "install_dependancies.sh" 

remote_build_command 'chmod +x install_dependancies.sh && ./install_dependancies.sh' 

#Run the puppy! 
exec "run.rb" 

install_dependancies.sh

echo "Installing dependancies to __gems__/" 
gem install bundler --install-dir ./__gems__ --no-ri --no-rdoc 
bundle install --standalone --path ./__gems__ 
cp -R ./__gems__/ruby/*/* ./__gems__ 
rm -rf ./__gems__/ruby 
echo "Fixing install location of mygem" 
mv ./__gems__/gems/mygem ./__gems__/gems/mygem-0.0.1 
相关问题