From d94aa85b0096d2c6558d8ee1fa1a88da6f9d183a Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Mon, 20 Aug 2018 20:20:25 +0100 Subject: [PATCH] Make 'deepl-rb' and 'easy_translate' deps optional Fixes #296 --- i18n-tasks.gemspec | 4 ++-- lib/i18n/tasks/translators/deepl_translator.rb | 6 +++++- lib/i18n/tasks/translators/google_translator.rb | 10 +++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/i18n-tasks.gemspec b/i18n-tasks.gemspec index cb809139..d5df804d 100644 --- a/i18n-tasks.gemspec +++ b/i18n-tasks.gemspec @@ -37,8 +37,6 @@ TEXT s.add_dependency 'activesupport', '>= 4.0.2' s.add_dependency 'ast', '>= 2.1.0' - s.add_dependency 'deepl-rb', '>= 2.1.0' - s.add_dependency 'easy_translate', '>= 0.5.1' s.add_dependency 'erubi' s.add_dependency 'highline', '>= 2.0.0' s.add_dependency 'i18n' @@ -47,6 +45,8 @@ TEXT s.add_dependency 'terminal-table', '>= 1.5.1' s.add_development_dependency 'axlsx', '~> 2.0' s.add_development_dependency 'bundler', '~> 1.3' + s.add_development_dependency 'deepl-rb', '>= 2.1.0' + s.add_development_dependency 'easy_translate', '>= 0.5.1' s.add_development_dependency 'rake' s.add_development_dependency 'rspec', '~> 3.3' s.add_development_dependency 'rubocop', '~> 0.53.0' diff --git a/lib/i18n/tasks/translators/deepl_translator.rb b/lib/i18n/tasks/translators/deepl_translator.rb index 83cb5c52..66ff6b98 100644 --- a/lib/i18n/tasks/translators/deepl_translator.rb +++ b/lib/i18n/tasks/translators/deepl_translator.rb @@ -1,11 +1,15 @@ # frozen_string_literal: true -require 'deepl' require 'i18n/tasks/translators/base_translator' module I18n::Tasks::Translators class DeeplTranslator < BaseTranslator def initialize(*) + begin + require 'deepl' + rescue LoadError + fail ::I18n::Tasks::CommandError, "Add gem 'deepl-rb' to your Gemfile to use this command" + end super configure_api_key! end diff --git a/lib/i18n/tasks/translators/google_translator.rb b/lib/i18n/tasks/translators/google_translator.rb index 51fa9ff1..cd9c2131 100644 --- a/lib/i18n/tasks/translators/google_translator.rb +++ b/lib/i18n/tasks/translators/google_translator.rb @@ -1,10 +1,18 @@ # frozen_string_literal: true -require 'easy_translate' require 'i18n/tasks/translators/base_translator' module I18n::Tasks::Translators class GoogleTranslator < BaseTranslator + def initialize(*) + begin + require 'easy_translate' + rescue LoadError + fail ::I18n::Tasks::CommandError, "Add gem 'easy_translate' to your Gemfile to use this command" + end + super + end + protected def translate_values(list, **options)