X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/25bfcc0f6b5344acb4039457f8492df7fbada7fc..5f51982916827b84d73bfa8f3a98a9ee1d48d3ce:/vendor/plugins/engines/tasks/engines.rake diff --git a/vendor/plugins/engines/tasks/engines.rake b/vendor/plugins/engines/tasks/engines.rake deleted file mode 100755 index 21bb763..0000000 --- a/vendor/plugins/engines/tasks/engines.rake +++ /dev/null @@ -1,176 +0,0 @@ -module Engines - module RakeTasks - def self.all_engines - # An engine is informally defined as any subdirectory in vendor/plugins - # which ends in '_engine', '_bundle', or contains an 'init_engine.rb' file. - engine_base_dirs = ['vendor/plugins'] - # The engine root may be different; if possible try to include - # those directories too - if Engines.const_defined?(:CONFIG) - engine_base_dirs << Engines::CONFIG[:root] - end - engine_base_dirs.map! {|d| [d + '/*_engine/*', - d + '/*_bundle/*', - d + '/*/init_engine.rb']}.flatten! - engine_dirs = FileList.new(*engine_base_dirs) - engine_dirs.map do |engine| - File.basename(File.dirname(engine)) - end.uniq - end - end -end - - -namespace :engines do - desc "Display version information about active engines" - task :info => :environment do - if ENV["ENGINE"] - e = Engines.get(ENV["ENGINE"]) - header = "Details for engine '#{e.name}':" - puts header - puts "-" * header.length - puts "Version: #{e.version}" - puts "Details: #{e.info}" - else - puts "Engines plugin: #{Engines.version}" - Engines.each do |e| - puts "#{e.name}: #{e.version}" - end - end - end -end - -namespace :db do - namespace :fixtures do - namespace :engines do - - desc "Load plugin/engine fixtures into the current environment's database." - task :load => :environment do - require 'active_record/fixtures' - ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) - plugin = ENV['ENGINE'] || '*' - Dir.glob(File.join(RAILS_ROOT, 'vendor', 'plugins', plugin, 'test', 'fixtures', '*.yml')).each do |fixture_file| - Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*')) - end - end - - end - end - - - namespace :migrate do - - desc "Migrate all engines. Target specific version with VERSION=x, specific engine with ENGINE=x" - task :engines => :environment do - engines_to_migrate = ENV["ENGINE"] ? [Engines.get(ENV["ENGINE"])].compact : Engines.active - if engines_to_migrate.empty? - puts "Couldn't find an engine called '#{ENV["ENGINE"]}'" - else - if ENV["VERSION"] && !ENV["ENGINE"] - # ignore the VERSION, since it makes no sense in this context; we wouldn't - # want to revert ALL engines to the same version because of a misttype - puts "Ignoring the given version (#{ENV["VERSION"]})." - puts "To control individual engine versions, use the ENGINE= argument" - else - engines_to_migrate.each do |engine| - Engines::EngineMigrator.current_engine = engine - migration_directory = File.join(engine.root, 'db', 'migrate') - if File.exist?(migration_directory) - puts "Migrating engine '#{engine.name}'" - Engines::EngineMigrator.migrate(migration_directory, ENV["VERSION"] ? ENV["VERSION"].to_i : nil) - else - puts "The db/migrate directory for engine '#{engine.name}' appears to be missing." - puts "Should be: #{migration_directory}" - end - end - if ActiveRecord::Base.schema_format == :ruby && !engines_to_migrate.empty? - Rake::Task[:db_schema_dump].invoke - end - end - end - end - - namespace :engines do - Engines::RakeTasks.all_engines.each do |engine_name| - desc "Migrate the '#{engine_name}' engine. Target specific version with VERSION=x" - task engine_name => :environment do - ENV['ENGINE'] = engine_name; Rake::Task['db:migrate:engines'].invoke - end - end - end - - end -end - - -# this is just a rip-off from the plugin stuff in railties/lib/tasks/documentation.rake, -# because the default plugindoc stuff doesn't support subdirectories like /app or -# /component. -namespace :doc do - - desc "Generate documation for all installed engines" - task :engines => Engines::RakeTasks.all_engines.map {|engine| "doc:engines:#{engine}"} - - namespace :engines do - # Define doc tasks for each engine - Engines::RakeTasks.all_engines.each do |engine_name| - desc "Generation documentation for the '#{engine_name}' engine" - task engine_name => :environment do - engine_base = "vendor/plugins/#{engine_name}" - options = [] - files = Rake::FileList.new - options << "-o doc/plugins/#{engine_name}" - options << "--title '#{engine_name.titlecase} Documentation'" - options << '--line-numbers --inline-source' - options << '--all' # include protected methods - options << '-T html' - - files.include("#{engine_base}/lib/**/*.rb") - files.include("#{engine_base}/app/**/*.rb") # include the app directory - files.include("#{engine_base}/components/**/*.rb") # include the components directory - if File.exists?("#{engine_base}/README") - files.include("#{engine_base}/README") - options << "--main '#{engine_base}/README'" - end - files.include("#{engine_base}/CHANGELOG") if File.exists?("#{engine_base}/CHANGELOG") - - options << files.to_s - - sh %(rdoc #{options * ' '}) - end - end - end -end - -namespace :test do - desc "Run the engine tests in vendor/plugins/**/test (or specify with ENGINE=name)" - # NOTE: we're using the Rails 1.0 non-namespaced task here, just to maintain - # compatibility with Rails 1.0 - # TODO: make this work with Engines.config(:root) - - namespace :engines do - Engines::RakeTasks.all_engines.each do |engine_name| - desc "Run the engine tests for '#{engine_name}'" - Rake::TestTask.new(engine_name => :prepare_test_database) do |t| - t.libs << 'test' - t.pattern = "vendor/plugins/#{engine_name}/test/**/*_test.rb" - t.verbose = true - end - end - end - - Rake::TestTask.new(:engines => [:warn_about_multiple_engines_testing, :prepare_test_database]) do |t| - t.libs << "test" - engines = ENV['ENGINE'] || '**' - t.pattern = "vendor/plugins/#{engines}/test/**/*_test.rb" - t.verbose = true - end - - task :warn_about_multiple_engines_testing do - puts %{-~============== A Moste Polite Warninge ==================~- -You may experience issues testing multiple engines at once. -Please test engines individual for the moment. --~===============( ... as you were ... )===================~- -} - end -end \ No newline at end of file