Rakefile in soulmate-0.0.3 vs Rakefile in soulmate-0.0.4
- old
+ new
@@ -43,16 +43,52 @@
test.libs << 'test'
test.pattern = 'test/**/test_*.rb'
test.verbose = true
end
-task :default => :test
-
require 'rake/rdoctask'
Rake::RDocTask.new do |rdoc|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
rdoc.rdoc_dir = 'rdoc'
rdoc.title = "soulmate #{version}"
rdoc.rdoc_files.include('README*')
rdoc.rdoc_files.include('lib/**/*.rb')
+end
+
+REDIS_DIR = File.expand_path(File.join("..", "test"), __FILE__)
+REDIS_CNF = File.join(REDIS_DIR, "test.conf")
+REDIS_PID = File.join(REDIS_DIR, "db", "redis.pid")
+REDIS_LOCATION = ENV['REDIS_LOCATION']
+
+task :default => :run
+
+desc "Run tests and manage server start/stop"
+task :run => [:start, :test, :stop]
+
+desc "Run rcov and manage server start/stop"
+task :rcoverage => [:start, :rcov, :stop]
+
+desc "Start the Redis server"
+task :start do
+ redis_running = \
+ begin
+ File.exists?(REDIS_PID) && Process.kill(0, File.read(REDIS_PID).to_i)
+ rescue Errno::ESRCH
+ FileUtils.rm REDIS_PID
+ false
+ end
+
+ if REDIS_LOCATION
+ system "#{REDIS_LOCATION}/redis-server #{REDIS_CNF}" unless redis_running
+ else
+ system "redis-server #{REDIS_CNF}" unless redis_running
+ end
+end
+
+desc "Stop the Redis server"
+task :stop do
+ if File.exists?(REDIS_PID)
+ Process.kill "INT", File.read(REDIS_PID).to_i
+ FileUtils.rm REDIS_PID
+ end
end