This repository has been archived by the owner on Apr 17, 2018. It is now read-only.
/
Rakefile
81 lines (65 loc) · 2.69 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
require 'rubygems'
require 'spec'
require 'spec/rake/spectask'
require 'pathname'
ROOT = Pathname(__FILE__).dirname.expand_path
require ROOT + 'lib/dm-migrations/version'
AUTHOR = "Paul Sadauskas"
EMAIL = "psadauskas@gmail.com"
GEM_NAME = "dm-migrations"
GEM_VERSION = DataMapper::Migration::VERSION
GEM_DEPENDENCIES = [["dm-core", '>0.9.5']]
GEM_CLEAN = ["log", "pkg"]
GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.txt LICENSE TODO ] }
PROJECT_NAME = "datamapper"
PROJECT_URL = "http://github.com/sam/dm-more/tree/master/dm-migrations"
PROJECT_DESCRIPTION = PROJECT_SUMMARY = "DataMapper plugin for writing and speccing migrations"
require ROOT.parent + 'tasks/hoe'
task :default => [ :spec ]
WIN32 = (RUBY_PLATFORM =~ /win32|mingw|cygwin/) rescue nil
SUDO = WIN32 ? '' : ('sudo' unless ENV['SUDOLESS'])
desc "Install #{GEM_NAME} #{GEM_VERSION} (default ruby)"
task :install => [ :package ] do
sh "#{SUDO} gem install --local pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources", :verbose => false
end
desc "Uninstall #{GEM_NAME} #{GEM_VERSION} (default ruby)"
task :uninstall => [ :clobber ] do
sh "#{SUDO} gem uninstall #{GEM_NAME} -v#{GEM_VERSION} -I -x", :verbose => false
end
namespace :jruby do
desc "Install #{GEM_NAME} #{GEM_VERSION} with JRuby"
task :install => [ :package ] do
sh %{#{SUDO} jruby -S gem install --local pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources}, :verbose => false
end
end
desc 'Run specifications'
Spec::Rake::SpecTask.new(:spec) do |t|
t.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
t.spec_files = Pathname.glob(Pathname.new(__FILE__).dirname + 'spec/**/*_spec.rb')
begin
t.rcov = ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true
t.rcov_opts << '--exclude' << 'spec'
t.rcov_opts << '--text-summary'
t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
rescue Exception
# rcov not installed
end
end
namespace :db do
# pass the relative path to the migrations directory by MIGRATION_DIR
task :setup_migration_dir do
unless defined?(MIGRATION_DIR)
migration_dir = ENV["MIGRATION_DIR"] || File.join("db", "migrations")
MIGRATION_DIR = File.expand_path(File.join(File.dirname(__FILE__), migration_dir))
end
FileUtils.mkdir_p MIGRATION_DIR
end
# set DIRECTION to migrate down
desc "Run your system's migrations"
task :migrate => [:setup_migration_dir] do
require File.expand_path(File.join(File.dirname(__FILE__), "lib", "migration_runner.rb"))
require File.expand_path(File.join(MIGRATION_DIR, "config.rb"))
Dir[File.join(MIGRATION_DIR, "*.rb")].each { |file| require file }
ENV["DIRECTION"] != "down" ? migrate_up! : migrate_down!
end
end