shvets-google_translate 0.5.7 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +6 -1
- data/Rakefile +1 -1
- data/google_translate.gemspec +1 -1
- data/lib/google_translate.rb +18 -14
- data/spec/translate_spec.rb +1 -1
- metadata +1 -1
data/CHANGES
CHANGED
data/Rakefile
CHANGED
data/google_translate.gemspec
CHANGED
data/lib/google_translate.rb
CHANGED
@@ -19,35 +19,41 @@ module Google
|
|
19
19
|
end
|
20
20
|
|
21
21
|
class Translator
|
22
|
+
class MissingFromLanguage < Exception; end
|
23
|
+
class MissingToLanguage < Exception; end
|
24
|
+
class MissingTextLanguage < Exception; end
|
25
|
+
class TranslateServerIsDown < Exception; end
|
26
|
+
class InvalidResponse < Exception; end
|
27
|
+
class MissingText < Exception; end
|
28
|
+
class MissingTestText < MissingText; end
|
29
|
+
|
22
30
|
URL_STRING = "http://ajax.googleapis.com/ajax/services/language/"
|
23
31
|
URL2_STRING = "http://translate.google.com"
|
24
32
|
|
25
33
|
def translate(from, to, from_text, options={})
|
26
|
-
raise
|
27
|
-
raise
|
28
|
-
raise
|
34
|
+
raise(MissingFromLanguage) if from.nil?
|
35
|
+
raise(MissingToLanguage) if to.nil?
|
36
|
+
raise(MissingTextLanguage) if from_text.nil?
|
29
37
|
|
30
38
|
request = URL_STRING + "translate?v=1.0&langpair=#{from}%7C#{to}&q=" + CGI.escape(from_text)
|
31
39
|
|
32
40
|
begin
|
33
41
|
response = call_service(request, [:response_status, :response_details, :response_data])
|
34
42
|
|
35
|
-
raise
|
43
|
+
raise(TranslateServerIsDown) if response.empty?
|
36
44
|
|
37
|
-
raise
|
45
|
+
raise(InvalidResponse, response[:response_details]) if response[:response_status] != 200 # success
|
38
46
|
|
39
47
|
to_text = response[:response_data]['translatedText']
|
40
48
|
|
41
|
-
# to_text = encode_text(to_text) if to == :ru
|
42
|
-
|
43
49
|
(options[:html]) ? CGI.unescapeHTML(to_text) : to_text
|
44
50
|
rescue OpenURI::HTTPError
|
45
|
-
raise
|
51
|
+
raise(TranslateServerIsDown)
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
49
|
-
def detect_language
|
50
|
-
raise
|
55
|
+
def detect_language(test_text)
|
56
|
+
raise(MissingTestText) if test_text.nil?
|
51
57
|
|
52
58
|
request = URL_STRING + "detect?v=1.0&q=" + CGI.escape(test_text)
|
53
59
|
|
@@ -55,13 +61,11 @@ module Google
|
|
55
61
|
response = call_service(request, [:response_data])
|
56
62
|
response_data = response[:response_data]
|
57
63
|
|
58
|
-
raise
|
59
|
-
#raise Exception.new :unreliable_detection if !response_data['isReliable']
|
64
|
+
raise(TranslateServerIsDown) if response.empty?
|
60
65
|
|
61
66
|
response_data
|
62
|
-
#
|
63
67
|
rescue OpenURI::HTTPError
|
64
|
-
raise
|
68
|
+
raise(TranslateServerIsDown)
|
65
69
|
end
|
66
70
|
end
|
67
71
|
|
data/spec/translate_spec.rb
CHANGED
@@ -44,7 +44,7 @@ module Google
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should return unreliable flag if language is not recognized" do
|
47
|
-
@translator.detect_language("azafretmkldt")['isReliable'].should
|
47
|
+
@translator.detect_language("azafretmkldt")['isReliable'].should be_false
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should return list of supportd languages" do
|