Author: vborja
Date: Mon Oct 20 14:32:49 2008
New Revision: 706420

URL: http://svn.apache.org/viewvc?rev=706420&view=rev
Log:
Use the clear method from rake, also restore rules.

Modified:
    incubator/buildr/trunk/addon/buildr/drb.rb

Modified: incubator/buildr/trunk/addon/buildr/drb.rb
URL: 
http://svn.apache.org/viewvc/incubator/buildr/trunk/addon/buildr/drb.rb?rev=706420&r1=706419&r2=706420&view=diff
==============================================================================
--- incubator/buildr/trunk/addon/buildr/drb.rb (original)
+++ incubator/buildr/trunk/addon/buildr/drb.rb Mon Oct 20 14:32:49 2008
@@ -79,14 +79,14 @@
       
       # save the tasks,rules,layout defined by buildr
       def initialize
-        @projects = Project.instance_variable_get(:@projects) || {}
+        @projects = (Project.instance_variable_get(:@projects) || {}).clone
         @tasks = Buildr.application.tasks.inject({}) do |hash, original|
           unless projects.key? original.name # don't save project definitions
             hash.update original.name => SavedTask.new(original)
           end
           hash
         end
-        @rules = Buildr.application.instance_variable_get(:@rules)
+        @rules = Buildr.application.instance_variable_get(:@rules).clone
         @layout = Layout.default.clone
       end
       
@@ -224,14 +224,14 @@
 
     def clear_for_reload(snapshot)
       Project.clear
-      clear_invoked_tasks(snapshot)
-      @rules = snapshot.rules.clone
+      clear_invoked_tasks(snapshot)      
       Layout.default = snapshot.layout.clone
     end
 
     def clear_invoked_tasks(snapshot)
-      @tasks = {}
+      clear
       snapshot.tasks.each_pair { |name, saved| saved.define! }
+      @rules = snapshot.rules.clone
     end
 
     namespace(:drb) { task('start') { run_server! } }


Reply via email to