2010-10-01 28 views
0

我看回报率开源项目的install.rb文件:我感兴趣的那一刻击穿install.rb文件,请帮助我理解这个

version = ARGV.pop 

%w(core api auth dash promotions sample).each do |framework| 
    puts "Installing #{framework}..." 
    `cd #{framework} && gem build spree_#{framework}.gemspec && gem install spree_#{framework}-#{version}.gem --no-ri --no-rdoc && rm spree_#{framework}-#{version}.gem` 
end 

puts "Installing Spree..." 
`gem build spree.gemspec` 
`gem install spree-#{version}.gem --no-ri --no-rdoc ` 
`rm spree-#{version}.gem 

线条:

宝石打造spree_core.gemspec & &创业板安装spree_core-xxxx.gem

的core.gemspec样子:

version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip 

Gem::Specification.new do |s| 
    s.platform = Gem::Platform::RUBY 
    s.name  = 'spree_core' 
    s.version  = version 
    s.summary  = 'Core e-commerce functionality for the Spree project.' 
    s.description = 'Required dependancy for Spree' 

    s.required_ruby_version = '>= 1.8.7' 
    s.author  = 'Sean Schofield' 
    s.email  = '[email protected]' 
    s.homepage = 'http://spreecommerce.com' 
    s.rubyforge_project = 'spree_core' 

    s.files  = Dir['LICENSE', 'README.md', 'app/**/*', 'config/**/*', 'lib/**/*'] 
    s.require_path = 'lib' 
    s.requirements << 'none' 

    s.add_dependency('acts_as_list', '>= 0.1.2') 
    s.add_dependency('rd_awesome_nested_set', '>= 1.4.4') 
    s.add_dependency('rd_unobtrusive_date_picker', '>= 0.1.0') 

    s.add_dependency('highline', '>= 1.5.1') 
    #s.add_dependency('less', '>= 1.2.20') 
    s.add_dependency('stringex', '>= 1.0.3') 
    s.add_dependency('state_machine', '>= 0.9.4') 
    s.add_dependency('faker', '>= 0.3.1') 
    s.add_dependency('paperclip', '>= 2.3.1.1') 
    s.add_dependency('rd_resource_controller') 
    s.add_dependency('rd_searchlogic', '>= 3.0.0.rc3') 
    s.add_dependency('activemerchant', '>= 1.7.1') 
    s.add_dependency('will_paginate', '>= 3.0.pre') 
end 

这是干什么的? 它似乎生成一个文件B/C有一个调用RM。

回答

1

一旦创业板安装了

gem install 

命令你不再需要.gem文件。这只是一个遗留问题,因为包中的所有内容都放在文件系统中。没有必要保留它,因此.gem文件被删除;它完成了它的工作,以获得所有文件给你一个文件包

+0

所以add_depedancy将下载文件? – Blankman 2010-10-01 14:44:34

+0

这是关于宝石的很好的部分之一,如果它能找到它们,宝石将下载依赖关系。 – 2010-10-01 16:01:49

0

它会生成一个gem文件,然后安装并删除它?