require “uri” require “net/http”
namespace :translation_center do
def send_exception(exception) puts "An error has ocurred while performing this rake, would you like to send the exception to us so we may fix this problem ? press [Y/n]" confirm = $stdin.gets.chomp if confirm.blank? || confirm == 'y' || confirm == 'yes' puts 'Sending ...' params = {message: "#{exception.message} #{exception.backtrace.join("\n")}"} Net::HTTP.post_form(URI.parse('http://translation-center.herokuapp.com/translation_center_feedbacks/create_rake'), params) puts 'We have received your feedback. Thanks!' end # show the exception message puts exception.message puts exception.backtrace.join("\n") end desc "Insert yaml translations in db" task :yaml2db, [:locale ] => :environment do |t, args| begin TranslationCenter.yaml2db(args[:locale]) rescue Exception => e send_exception(e) end end desc "Export translations from db to yaml" task :db2yaml, [:locale ] => :environment do |t, args| begin TranslationCenter.db2yaml(args[:locale]) rescue Exception => e send_exception(e) end end desc "Calls yaml2db then db2yaml" task :synch, [:locale ] => :environment do |t, args| begin if TranslationCenter::Category.any? puts "WARNING: You already have translations stored in the db, do you want to destroy them? press [Y|n]" confirm = $stdin.gets.chomp TranslationCenter::Category.destroy_all if confirm.blank? || confirm == 'y' || confirm == 'yes' end TranslationCenter.yaml2db(args[:locale]) TranslationCenter.db2yaml(args[:locale]) rescue Exception => e send_exception(e) end end
end