Title: [863] trunk/activerecord-jdbc/lib:
Updating database tasks to be compatible with Rake 0.8,
and removing the need to copy
- Revision
- 863
- Author
- nicksieger
- Date
- 2008-01-02 17:03:54 -0500 (Wed, 02 Jan 2008)
Log Message
Updating database tasks to be compatible with Rake 0.8, and removing the need to copy
the task file when requiring jdbc_adapter
Modified Paths
Removed Paths
Diff
Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb (862 => 863)
--- trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb 2008-01-02 21:43:06 UTC (rev 862)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb 2008-01-02 22:03:54 UTC (rev 863)
@@ -1,6 +1,50 @@
-if defined?(namespace)
- begin
- load File.join(File.dirname(__FILE__), '..', 'tasks', 'jdbc_databases.rake')
- rescue Exception => e
+if defined?(namespace) && RUBY_PLATFORM =~ /java/
+ def redefine_task(*args, &block)
+ task_name = Hash === args.first ? args.first.keys[0] : args.first
+ existing_task = Rake::Task[task_name]
+ class << existing_task; public :instance_variable_set; end
+ existing_task.instance_variable_set "@prerequisites", FileList[]
+ existing_task.instance_variable_set "@actions", []
+ task(*args, &block)
end
+
+ namespace :db do
+ redefine_task :drop => :environment do
+ begin
+ config = ActiveRecord::Base.configurations[environment_name]
+ ActiveRecord::Base.establish_connection(config)
+ db = ActiveRecord::Base.connection.database_name
+ ActiveRecord::Base.connection.recreate_database(db)
+ rescue
+ end
+ end
+
+ namespace :structure do
+ redefine_task :dump => :environment do
+ abcs = ActiveRecord::Base.configurations
+ ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
+ File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
+ if ActiveRecord::Base.connection.supports_migrations?
+ File.open("db/#{RAILS_ENV}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.dump_schema_information }
+ end
+ end
+ end
+ namespace :test do
+ redefine_task :clone_structure => [ "db:structure:dump", "db:test:purge" ] do
+ abcs = ActiveRecord::Base.configurations
+ ActiveRecord::Base.establish_connection(:test)
+ ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0') if abcs["test"]["adapter"] =~ /mysql/i
+ IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split(";\n\n").each do |ddl|
+ ActiveRecord::Base.connection.execute(ddl)
+ end
+ end
+
+ redefine_task :purge => :environment do
+ abcs = ActiveRecord::Base.configurations
+ ActiveRecord::Base.establish_connection(:test)
+ db = ActiveRecord::Base.connection.database_name
+ ActiveRecord::Base.connection.recreate_database(db)
+ end
+ end
+ end
end
Modified: trunk/activerecord-jdbc/lib/jdbc_adapter.rb (862 => 863)
--- trunk/activerecord-jdbc/lib/jdbc_adapter.rb 2008-01-02 21:43:06 UTC (rev 862)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter.rb 2008-01-02 22:03:54 UTC (rev 863)
@@ -19,14 +19,6 @@
require 'active_record/connection_adapters/jdbc_adapter'
end
end
- if defined?(RAILS_ROOT)
- to_file = File.expand_path(File.join(RAILS_ROOT, 'lib', 'tasks', 'jdbc_databases.rake'))
- from_file = File.expand_path(File.join(File.dirname(__FILE__), 'tasks', 'jdbc_databases.rake'))
- if !File.exist?(to_file) || (File.mtime(to_file) < File.mtime(from_file))
- require 'fileutils'
- FileUtils.cp from_file, to_file, :verbose => true
- end
- end
else
warn "ActiveRecord-JDBC is for use with JRuby only"
end
Deleted: trunk/activerecord-jdbc/lib/tasks/jdbc_databases.rake (862 => 863)
--- trunk/activerecord-jdbc/lib/tasks/jdbc_databases.rake 2008-01-02 21:43:06 UTC (rev 862)
+++ trunk/activerecord-jdbc/lib/tasks/jdbc_databases.rake 2008-01-02 22:03:54 UTC (rev 863)
@@ -1,72 +0,0 @@
-
-# Task redefine code from public domain
-module Rake
- module TaskManager
- def redefine_task(task_class, args, &block)
- task_name, deps = resolve_args(args)
- task_name = task_class.scope_name(@scope, task_name)
- deps = [deps] unless deps.respond_to?(:to_ary)
- deps = deps.collect {|d| d.to_s }
- task = @tasks[task_name.to_s] = task_class.new(task_name, self)
- task.application = self
- task.add_comment(@last_comment)
- @last_comment = nil
- task.enhance(deps, &block)
- task
- end
- end
- class Task
- class << self
- def redefine_task(args, &block)
- Rake.application.redefine_task(self, args, &block)
- end
- end
- end
-end
-
-def redefine_task(args, &block)
- Rake::Task.redefine_task(args, &block)
-end
-
-if RUBY_PLATFORM =~ /java/
- namespace :db do
- redefine_task :drop => :environment do
- begin
- config = ActiveRecord::Base.configurations[environment_name]
- ActiveRecord::Base.establish_connection(config)
- db = ActiveRecord::Base.connection.database_name
- ActiveRecord::Base.connection.recreate_database(db)
- rescue
- end
- end
-
- namespace :structure do
- redefine_task :dump => :environment do
- abcs = ActiveRecord::Base.configurations
- ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
- File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
- if ActiveRecord::Base.connection.supports_migrations?
- File.open("db/#{RAILS_ENV}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.dump_schema_information }
- end
- end
- end
- namespace :test do
- redefine_task :clone_structure => [ "db:structure:dump", "db:test:purge" ] do
- abcs = ActiveRecord::Base.configurations
- ActiveRecord::Base.establish_connection(:test)
- ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0') if abcs["test"]["adapter"] =~ /mysql/i
- IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split(";\n\n").each do |ddl|
- ActiveRecord::Base.connection.execute(ddl)
- end
- end
-
- redefine_task :purge => :environment do
- abcs = ActiveRecord::Base.configurations
- ActiveRecord::Base.establish_connection(:test)
- db = ActiveRecord::Base.connection.database_name
- ActiveRecord::Base.connection.recreate_database(db)
- end
- end
- end
-end
-
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel