diff options
author | Jon Leighton <j@jonathanleighton.com> | 2012-06-17 13:38:25 -0700 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2012-06-17 13:38:25 -0700 |
commit | 757140823b2217301911efd531396bfb8f5c9a42 (patch) | |
tree | 2ecf81d21e5810b8459536f12ddb509cb35e16d2 /activerecord/lib/active_record/tasks/sqlite_database_tasks.rb | |
parent | 69881ecdaf204a8e864cdda6af33cc258df544ae (diff) | |
parent | 55f8dfd99e20d991dee2d948120ce8955054acbf (diff) | |
download | rails-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.rb | 37 |
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 |