namespace :db_to_file do
class NoCommitMessage < Exception; end desc "Upload files to the database (set commit message via command 'rake db_to_file:unload['<commit message>'])" task :upload, [:commit_message] => :environment do |t, args| no_commit_message_error if args[:commit_message].blank? upload_files(args[:commit_message]) end desc "Force uploading to the database, without checks" task :force_upload => :environment do |t, args| force_upload_files end desc 'Force uploading only changed files in database, without checks' task :force_changed => :environment do |t, args| force_upload_changed_files end private def upload_files(commit_message) DbToFile::Uploader.new.upload(commit_message) end def force_upload_files DbToFile::Uploader.new.force_upload end def force_upload_changed_files DbToFile::Uploader.new.force_upload end def no_commit_message_error raise NoCommitMessage, "invoke via 'rake db_to_file:unload['<commit message>']'" end
end