Replaced Rails environment variables with Merb equivalents.
[merb_radiant.git] / lib / tasks / extensions.rake
blob5e355d60659e5a44ba5355533bd6cad7adb5b9f1
1 require 'rake/testtask'
3 namespace :db do
4   namespace :migrate do
5     desc "Run all Radiant extension migrations"
6     task :extensions => :environment do
7       require 'radiant/extension_migrator'
8       Radiant::ExtensionMigrator.migrate_extensions
9     end
10   end
11   namespace :remigrate do
12     desc "Migrate down and back up all Radiant extension migrations"
13     task :extensions => :environment do
14       require 'highline/import'
15       if agree("This task will destroy any data stored by extensions in the database. Are you sure you want to \ncontinue? [yn] ")
16         require 'radiant/extension_migrator'
17         Radiant::Extension.descendants.map(&:migrator).each {|m| m.migrate(0) }
18         Rake::Task['db:migrate:extensions'].invoke
19       end
20     end
21   end
22 end
24 namespace :test do
25   desc "Runs tests on all available Radiant extensions, pass EXT=extension_name to test a single extension"
26   task :extensions => "db:test:prepare" do
27     extension_roots = Radiant::Extension.descendants.map(&:root)
28     if ENV["EXT"]
29       extension_roots = extension_roots.select {|x| /\/(\d+_)?#{ENV["EXT"]}$/ === x }
30       if extension_roots.empty?
31         puts "Sorry, that extension is not installed."
32       end
33     end
34     extension_roots.each do |directory|
35       chdir directory do
36         if RUBY_PLATFORM =~ /win32/
37           system "rake.cmd test"
38         else
39           system "rake test"
40         end
41       end
42     end
43   end
44 end
46 namespace :spec do
47   desc "Runs specs on all available Radiant extensions, pass EXT=extension_name to test a single extension"
48   task :extensions => "db:test:prepare" do
49     extension_roots = Radiant::Extension.descendants.map(&:root)
50     if ENV["EXT"]
51       extension_roots = extension_roots.select {|x| /\/(\d+_)?#{ENV["EXT"]}$/ === x }
52       if extension_roots.empty?
53         puts "Sorry, that extension is not installed."
54       end
55     end
56     extension_roots.each do |directory|
57       chdir directory do
58         if RUBY_PLATFORM =~ /win32/
59           system "rake.cmd spec"
60         else
61           system "rake spec"
62         end
63       end
64     end
65   end
66 end
68 # Load any custom rakefiles from extensions
69 [Merb.root, RADIANT_ROOT].uniq.each do |root|
70   Dir[root + '/vendor/extensions/**/tasks/**/*.rake'].sort.each { |ext| load ext }
71 end