]> git.wincent.com - wikitext.git/commitdiff
Replace backticks and "system" calls with custom run method
authorWincent Colaiuta <win@wincent.com>
Mon, 5 Jan 2009 17:27:09 +0000 (18:27 +0100)
committerWincent Colaiuta <win@wincent.com>
Mon, 5 Jan 2009 17:27:09 +0000 (18:27 +0100)
With this change the specs are now totally silent in the success case.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
spec/rails_spec.rb

index b21ad9f5d05366c086e2f074bdec94c6c54fc312..adc4c1c490ee4b7a219ecac1035c74b2f8ec4251 100644 (file)
@@ -53,9 +53,11 @@ module RailsSpecs
 
   def clone
     if File.exist? CLONE_PATH
-      system "cd #{CLONE_PATH} && git fetch"
+      FileUtils.cd CLONE_PATH do
+        run 'git', 'fetch'
+      end
     else
-      system "git clone git://github.com/rails/rails.git #{CLONE_PATH}"
+      run 'git', 'clone', 'git://github.com/rails/rails.git', CLONE_PATH
     end
   end
 
@@ -67,17 +69,24 @@ module RailsSpecs
     clone
     FileUtils.rm_r(app) if File.exist?(app)
     yield
-    system "ruby #{RAILS_PATH} #{app}"
+    run 'ruby', RAILS_PATH, app
     vendor = app + 'vendor'
     gems = vendor + 'gems'
-    system "cd #{vendor} && ln -s ../../rails.git rails"
+    FileUtils.cd vendor do
+      FileUtils.ln_s '../../rails.git', 'rails'
+    end
     FileUtils.mkdir gems
-    system "cd #{gems} && ln -s ../../../../.. wikitext-#{Wikitext::VERSION}"
+    FileUtils.cd gems do
+      FileUtils.ln_s '../../../../..', "wikitext-#{Wikitext::VERSION}"
+    end
   end
 
   def create_release_app version
     create_base_app_and_symlinks app_path(version) do
-      system "cd #{CLONE_PATH} && git checkout v#{version} && git clean -f"
+      FileUtils.cd CLONE_PATH do
+        run 'git', 'checkout', "v#{version}"
+        run 'git', 'clean', '-f'
+      end
     end
   end
 
@@ -135,14 +144,20 @@ TEST
 
   def create_edge_app
     create_base_app_and_symlinks EDGE_APP_PATH do
-      system "cd #{CLONE_PATH} && git checkout master && git merge origin/master && git clean -f"
+      FileUtils.cd CLONE_PATH do
+        run 'git', 'checkout', 'master'
+        run 'git', 'merge', 'origin/master'
+        run 'git', 'clean', '-f'
+      end
     end
   end
 
   def update_environment app
     environment =  app + 'config' + 'environment.rb'
     add_text_to_initializer "  config.gem 'wikitext', :version => '#{Wikitext::VERSION}'", environment
-    system "cd #{app} && rake gems:refresh_specs"
+    FileUtils.cd app do
+      run 'rake', 'gems:refresh_specs'
+    end
   end
 
   def setup_release_app version
@@ -163,8 +178,9 @@ TEST
   end
 
   def run_integration_test app
-    # TODO: use wopen3 here to capture output nicely
-    `cd #{app} && rake test:integration`
+    FileUtils.cd app do
+      return run('rake', 'test:integration').stdout
+    end
   end
 end # module RailsSpecs