easy_translate 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'cgi'
|
2
3
|
require File.dirname(__FILE__) + '/request'
|
3
4
|
|
4
5
|
module EasyTranslate
|
@@ -9,7 +10,7 @@ module EasyTranslate
|
|
9
10
|
# @param [String, Array] texts - A single string or set of strings to detect for
|
10
11
|
# @param [Hash] options - Extra options to pass along with the request
|
11
12
|
# @return [String, Array] The resultant language or languages
|
12
|
-
def detect(texts, options =
|
13
|
+
def detect(texts, options = {}, http_options = {})
|
13
14
|
request = DetectionRequest.new(texts, options, http_options)
|
14
15
|
# Turn the response into an array of detections
|
15
16
|
raw = request.perform_raw
|
@@ -51,7 +52,7 @@ module EasyTranslate
|
|
51
52
|
# The body for the request
|
52
53
|
# @return [String] the body for the request, URL escaped
|
53
54
|
def body
|
54
|
-
@texts.map { |t| "q=#{
|
55
|
+
@texts.map { |t| "q=#{CGI::escape(t)}" }.join '&'
|
55
56
|
end
|
56
57
|
|
57
58
|
# Whether or not this was a request for multiple texts
|
@@ -71,7 +72,7 @@ module EasyTranslate
|
|
71
72
|
else
|
72
73
|
@multi = true
|
73
74
|
@texts = texts
|
74
|
-
end
|
75
|
+
end
|
75
76
|
end
|
76
77
|
|
77
78
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'cgi'
|
2
3
|
require File.dirname(__FILE__) + '/request'
|
3
4
|
|
4
5
|
module EasyTranslate
|
@@ -11,9 +12,9 @@ module EasyTranslate
|
|
11
12
|
# @option options [String, Symbol] :target - The target language (required)
|
12
13
|
# @option options [Boolean] :html - Whether or not the supplied string is HTML (optional)
|
13
14
|
# @return [String, Array] Translated text or texts
|
14
|
-
def translate(texts, options = {}, http_options={})
|
15
|
+
def translate(texts, options = {}, http_options = {})
|
15
16
|
request = TranslationRequest.new(texts, options, http_options)
|
16
|
-
# Turn the response into an array of translations
|
17
|
+
# Turn the response into an array of translations
|
17
18
|
raw = request.perform_raw
|
18
19
|
translations = JSON.parse(raw)['data']['translations'].map do |res|
|
19
20
|
res['translatedText']
|
@@ -24,11 +25,11 @@ module EasyTranslate
|
|
24
25
|
|
25
26
|
# A convenience class for wrapping a translation request
|
26
27
|
class TranslationRequest < EasyTranslate::Request
|
27
|
-
|
28
|
+
|
28
29
|
# Set the texts and options
|
29
30
|
# @param [String, Array] texts - the text (or texts) to translate
|
30
31
|
# @param [Hash] options - Options to override or pass along with the request
|
31
|
-
def initialize(texts, options, http_options={})
|
32
|
+
def initialize(texts, options, http_options = {})
|
32
33
|
self.texts = texts
|
33
34
|
self.html = options.delete(:html)
|
34
35
|
@source = options.delete(:from)
|
@@ -64,7 +65,7 @@ module EasyTranslate
|
|
64
65
|
# The body for the request
|
65
66
|
# @return [String] the body for the request, URL escaped
|
66
67
|
def body
|
67
|
-
@texts.map { |t| "q=#{
|
68
|
+
@texts.map { |t| "q=#{CGI::escape(t)}" }.join '&'
|
68
69
|
end
|
69
70
|
|
70
71
|
# Whether or not this was a request for multiple texts
|
@@ -20,9 +20,9 @@ module EasyTranslate
|
|
20
20
|
class TranslationTargetRequest < EasyTranslate::Request
|
21
21
|
|
22
22
|
def initialize(target = nil, options = nil)
|
23
|
+
super(options)
|
23
24
|
@target = target
|
24
|
-
if options
|
25
|
-
@options = options
|
25
|
+
if @options
|
26
26
|
if replacement_api_key = @options.delete(:api_key)
|
27
27
|
@options[:key] = replacement_api_key
|
28
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_translate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
81
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.8.
|
82
|
+
rubygems_version: 1.8.25
|
83
83
|
signing_key:
|
84
84
|
specification_version: 3
|
85
85
|
summary: Google Translate API Wrapper for Ruby
|