2010-10-01 50 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文件,然後安裝並刪除它?