[DRE-commits] [ruby-client-side-validations] 04/07: use Rakefile to run tests

Praveen Arimbrathodiyil praveen at moszumanska.debian.org
Wed Apr 16 12:10:24 UTC 2014


This is an automated email from the git hooks/post-receive script.

praveen pushed a commit to branch master
in repository ruby-client-side-validations.

commit 40e78b955a2c9e29282a8a268c24e10f8ee8f858
Author: Praveen Arimbrathodiyil <praveen at debian.org>
Date:   Wed Apr 16 15:20:01 2014 +0530

    use Rakefile to run tests
---
 debian/ruby-tests.rake | 104 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/debian/ruby-tests.rake b/debian/ruby-tests.rake
new file mode 100644
index 0000000..74c69a8
--- /dev/null
+++ b/debian/ruby-tests.rake
@@ -0,0 +1,104 @@
+require 'bundler'
+require File.join(File.expand_path('..', __FILE__), 'coffeescript/processor')
+Bundler::GemHelper.install_tasks
+
+multitask :default => 'test:ruby'
+
+require 'rake/testtask'
+namespace :test do
+  desc %(Run all tests)
+  multitask :all => ['test:ruby', 'test:js']
+
+  desc %(Test Ruby code)
+  Rake::TestTask.new(:ruby) do |test|
+    test.libs << 'lib' << 'test'
+    test.test_files = Dir.glob("#{File.dirname(__FILE__)}/test/**/test_*.rb").sort
+  end
+
+  desc %(Test Javascript code)
+  multitask :js => ['test:server', 'test:open']
+
+  desc %(Starts the test server)
+  task :server do
+    system 'bundle exec ruby test/javascript/server.rb'
+  end
+
+  desc %(Starts the test server which reloads everything on each refresh)
+  task :reloadable do
+    exec "bundle exec shotgun test/javascript/config.ru -p #{PORT} --server thin"
+  end
+
+  task :open do
+    url = "http://localhost:#{PORT}"
+    puts "Opening test app at #{url} ..."
+    sleep 3
+    system( *browse_cmd(url) )
+  end
+end
+
+desc %{Regenerate and commit JavaScript file}
+task :regenerate_javascript do
+  regenerate_javascript
+end
+
+Rake::Task[:build].instance_eval { @actions.clear }
+task :build do
+  regenerate_javascript
+  perform_git_commit
+  Bundler::GemHelper.new(Dir.pwd).build_gem
+end
+
+def perform_git_commit
+  sh_with_code('git add vendor')
+  out, code = sh_with_code('git commit -m "Regenerated JavaScript"')
+  if code == 0
+    puts "Committed changes"
+  else
+    puts "Nothing to commit"
+  end
+end
+
+def regenerate_javascript
+  ClientSideValidations::Processor.run
+  puts 'Regenerated JavaScript'
+end
+
+def sh_with_code(cmd, &block)
+  cmd << " 2>&1"
+  outbuf = ''
+  Bundler.ui.debug(cmd)
+  Dir.chdir(Dir.pwd) {
+    outbuf = `#{cmd}`
+    if $? == 0
+      block.call(outbuf) if block
+    end
+  }
+  [outbuf, $?]
+end
+
+PORT = 4567
+
+# Returns an array e.g.: ['open', 'http://example.com']
+def browse_cmd(url)
+  require 'rbconfig'
+  browser = ENV['BROWSER'] ||
+    (RbConfig::CONFIG['host_os'].include?('darwin') && 'open') ||
+    (RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw|windows/ && 'start') ||
+    %w[xdg-open x-www-browser firefox opera mozilla netscape].find { |comm| which comm }
+
+  abort('ERROR: no web browser detected') unless browser
+  Array(browser) << url
+end
+
+# which('ruby') #=> /usr/bin/ruby
+def which cmd
+  exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
+  ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
+    exts.each { |ext|
+      exe = "#{path}/#{cmd}#{ext}"
+      return exe if File.executable? exe
+    }
+  end
+  return nil
+end
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-client-side-validations.git



More information about the Pkg-ruby-extras-commits mailing list