diff --git a/lib/tasks/language.rake b/lib/tasks/language.rake index b1868f15fb997104c8f8329a9dc5ac21bf967129..ae99b5a92eb2e0b284696d46d72ae9006e6f1591 100644 --- a/lib/tasks/language.rake +++ b/lib/tasks/language.rake @@ -12,4 +12,40 @@ namespace :language do end end end + + desc 'Destroy languages that are not defaults' + task :restart => :environment do + default_language = Language.find_or_create_by(name:'Outro') do |l| + l.code = 'Outro' + end + Language.find_each do |language| + unless is_valid? language + LearningObject.where(language: language).update_all(language_id: default_language.id) + language.destroy + end + end + end + + def is_valid?(language) + if default_languages.has_key? language.name and default_languages[language.name] == language.code + return true + else + return false + end + end + + def default_languages + { + 'Português' => 'pt', + 'Inglês' => 'en', + 'Espanhol' => 'es', + 'Francês' => 'fr', + 'Alemão' => 'de', + 'Italiano'=> 'it', + 'Mandarim' => 'zh', + 'Russo' => 'ru', + 'Japonês' => 'jp', + 'Outro' => 'Outro' + } + end end \ No newline at end of file