Changeset 493

Show
Ignore:
Timestamp:
03/17/2008 11:11:43 (5 months ago)
Author:
why
Message:
  • lib/shoes/cache.rb: continuing work on the gem setup routines.
Location:
trunk/lib
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/lib/shoes.rb

    r489 r493  
    143143    return if @setups[line] 
    144144    script = line[/^(.+?):/, 1] 
    145     Shoes::Setup.new(script, &blk) 
     145    set = Shoes::Setup.new(script, &blk) 
    146146    @setups[line] = true 
    147     raise SettingUp 
     147    unless set.steps.empty? 
     148      raise SettingUp 
     149    end 
    148150  end 
    149151 
  • trunk/lib/shoes/cache.rb

    r492 r493  
    5454 
    5555    gem_reset 
    56     install_sources 
     56    install_sources if Gem.source_index.find_name('sources').empty? 
    5757  end 
    5858 
    5959  def self.gem_reset 
    60     if Gem.const_defined? :ConfigFile 
    61       Gem.configuration = Gem::ConfigFile.new(:gemhome => GEM_DIR, :gempath => GEM_DIR) 
    62     end 
    6360    Gem.use_paths(GEM_DIR, [GEM_DIR]) 
    6461    Gem.source_index.refresh! 
     
    8380            Thread.start(self) do |app| 
    8481              begin 
    85                 sleep(1) until app.started? 
    8682                setup.start 
    8783              rescue => e 
     
    9995    @steps = [] 
    10096    @script = script 
    101     @app = self.class.setup_app(self) 
    10297    instance_eval &blk 
     98    unless @steps.empty? 
     99      @app = self.class.setup_app(self) 
     100    end 
    103101  end 
    104102 
    105103  def gem name, version = nil 
    106     @steps << [:gem, "#{name} #{version}".strip] 
     104    arg = "#{name} #{version}".strip 
     105    name, version = arg.split(/\s+/, 2) 
     106    if Gem.source_index.find_name(name, version).empty? 
     107      @steps << [:gem, arg] 
     108    end 
    107109  end 
    108110 
     
    113115    ui.progress count, total 
    114116 
    115     @steps.each do |act, arg| 
     117    steps.each do |act, arg| 
    116118      case act 
    117119      when :gem