aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2012-06-17 13:38:25 -0700
committerJon Leighton <j@jonathanleighton.com>2012-06-17 13:38:25 -0700
commit757140823b2217301911efd531396bfb8f5c9a42 (patch)
tree2ecf81d21e5810b8459536f12ddb509cb35e16d2 /activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
parent69881ecdaf204a8e864cdda6af33cc258df544ae (diff)
parent55f8dfd99e20d991dee2d948120ce8955054acbf (diff)
downloadrails-757140823b2217301911efd531396bfb8f5c9a42.tar.gz
rails-757140823b2217301911efd531396bfb8f5c9a42.tar.bz2
rails-757140823b2217301911efd531396bfb8f5c9a42.zip
Merge pull request #6761 from freelancing-god/db-rake
Get logic out of db rake tasks, and into classes and objects
Diffstat (limited to 'activerecord/lib/active_record/tasks/sqlite_database_tasks.rb')
-rw-r--r--activerecord/lib/active_record/tasks/sqlite_database_tasks.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/tasks/sqlite_database_tasks.rb b/activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
new file mode 100644
index 0000000000..4d3cba8a50
--- /dev/null
+++ b/activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
@@ -0,0 +1,37 @@
+class ActiveRecord::Tasks::SQLiteDatabaseTasks
+ delegate :connection, :establish_connection, :to => ActiveRecord::Base
+
+ def initialize(configuration, root = Rails.root)
+ @configuration, @root = configuration, root
+ end
+
+ def create
+ if File.exist? configuration['database']
+ $stderr.puts "#{configuration['database']} already exists"
+ return
+ end
+
+ establish_connection configuration
+ connection
+ end
+
+ def drop
+ require 'pathname'
+ path = Pathname.new configuration['database']
+ file = path.absolute? ? path.to_s : File.join(root, path)
+
+ FileUtils.rm(file)
+ end
+
+ alias :purge :drop
+
+ private
+
+ def configuration
+ @configuration
+ end
+
+ def root
+ @root
+ end
+end