shvets-google_translate 0.5.7 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|