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