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

Reply via email to