goobalize3 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Goobalize3
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'
3
3
  end
@@ -2,8 +2,9 @@ module GoogleTranslate
2
2
  require 'net/http'
3
3
  require 'json'
4
4
 
5
- HOST = 'www.googleapis.com'
6
- SERVICE = '/language/translate/v2'
5
+ HOST = 'www.googleapis.com'
6
+ SERVICE = '/language/translate/v2'
7
+ QUERY_LIMIT = 5000
7
8
 
8
9
  def self.get_api
9
10
  config_file = "#{Rails.root}/config/google_translate.yml"
@@ -20,19 +21,20 @@ module GoogleTranslate
20
21
 
21
22
  def self.perform(params)
22
23
  @@goole_translate_api ||= get_api
23
- params[:q] = CGI::escape(params[:q])
24
- params.merge!(:key => @@goole_translate_api)
24
+ params[:q] = CGI::escape(params[:q].to_s[0..QUERY_LIMIT])
25
+ params.merge!(:key => @@goole_translate_api, :format => 'html')
25
26
  data = []
26
27
  params.each_pair { |k,v| data << "#{k}=#{v}" }
27
28
  query_string = data.join('&')
28
29
  http = Net::HTTP.new(HOST, 443)
29
30
  http.use_ssl = true
30
31
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
31
- response, data = http.get("#{SERVICE}?#{query_string}")
32
+ response, data = http.post(SERVICE, query_string, 'X-HTTP-Method-Override' => 'GET')
32
33
  json = JSON.parse(data)
33
- raise GoogleTranslateException.new(json['error']['errors'].first['message']) if json['error']
34
34
  if json['data'] && json['data']['translations'] && json['data']['translations'].first['translatedText']
35
35
  return CGI::unescapeHTML(json['data']['translations'].first['translatedText'])
36
+ elsif json['error'] && json['error']['errors'] && json['error']['errors'].first['message']
37
+ raise GoogleTranslateException.new(json['error']['errors'].first['message'])
36
38
  else
37
39
  raise GoogleTranslateException.new('Unknown error')
38
40
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goobalize3
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 27
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 1
9
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
10
11
  platform: ruby
11
12
  authors:
12
13
  - Enrico Pilotto
@@ -25,6 +26,7 @@ dependencies:
25
26
  requirements:
26
27
  - - ">="
27
28
  - !ruby/object:Gem::Version
29
+ hash: 3
28
30
  segments:
29
31
  - 0
30
32
  version: "0"
@@ -63,6 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
65
  requirements:
64
66
  - - ">="
65
67
  - !ruby/object:Gem::Version
68
+ hash: 3
66
69
  segments:
67
70
  - 0
68
71
  version: "0"
@@ -71,13 +74,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
74
  requirements:
72
75
  - - ">="
73
76
  - !ruby/object:Gem::Version
77
+ hash: 3
74
78
  segments:
75
79
  - 0
76
80
  version: "0"
77
81
  requirements: []
78
82
 
79
83
  rubyforge_project: goobalize3
80
- rubygems_version: 1.3.7
84
+ rubygems_version: 1.4.2
81
85
  signing_key:
82
86
  specification_version: 3
83
87
  summary: Auto translate with Google Translate the Globalize3 attributes