lib/tr4n5l4te/translator.rb in tr4n5l4te-0.1.2 vs lib/tr4n5l4te/translator.rb in tr4n5l4te-0.1.3

- old
+ new

@@ -10,23 +10,35 @@ @sleep_time = args.fetch(:sleep_time, 2) @agent = Agent.new end def translate(text, from_lang, to_lang) - return '' if text.nil? || text == '' + encoded_text = validate_and_encode(text) + return '' if encoded_text == '' + smart_visit(translator_url(encoded_text, from_lang, to_lang)) + result_box = browser.find('#result_box') + result_box.text + end + + private + + def validate_and_encode(text) + return '' if text.nil? + fail "Cannot translate a [#{text.class}]: '#{text}'" unless text.respond_to?(:gsub) text.strip! - return '' if text == '' - encoded_text = URI.encode(text) - url = "#{START_PAGE}/##{from_lang}/#{to_lang}/#{encoded_text}" + URI.encode(text) + end + + def smart_visit(url) load_cookies agent.visit(url) store_cookies sleep_default - result_box = browser.find('#result_box') - result_box.text end - private + def translator_url(encoded_text, from_lang, to_lang) + "#{START_PAGE}/##{from_lang}/#{to_lang}/#{encoded_text}" + end def store_cookies agent.store_cookies(Tr4n5l4te.cookie_file) end