google-translate 0.6.9 → 0.7.0
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 +5 -0
- data/README +1 -2
- data/Rakefile +36 -114
- data/VERSION +1 -1
- data/bin/translate +2 -0
- data/google-translate.gemspec +11 -2
- data/lib/google_translate.rb +12 -8
- metadata +50 -8
data/CHANGES
CHANGED
data/README
CHANGED
data/Rakefile
CHANGED
@@ -7,14 +7,43 @@ require 'spec/rake/spectask'
|
|
7
7
|
require 'rake/rdoctask'
|
8
8
|
require 'rcov/rcovtask'
|
9
9
|
|
10
|
-
|
11
|
-
#
|
12
|
-
# SPEC = Gem::Specification.load(spec_name)
|
10
|
+
task :default => :package
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
begin
|
13
|
+
require 'bundler'
|
14
|
+
|
15
|
+
begin
|
16
|
+
require 'jeweler'
|
17
|
+
|
18
|
+
Jeweler::Tasks.new do |gemspec|
|
19
|
+
gemspec.name = "google-translate"
|
20
|
+
gemspec.summary = "Simple client for Google Translate API (Summary)."
|
21
|
+
gemspec.description = "Simple client for Google Translate API."
|
22
|
+
gemspec.email = "alexander.shvets@gmail.com"
|
23
|
+
gemspec.homepage = "http://github.com/shvets/google-translate"
|
24
|
+
gemspec.authors = ["Alexander Shvets"]
|
25
|
+
gemspec.files = FileList["CHANGES", "google-translate.gemspec", "Rakefile", "README", "VERSION",
|
26
|
+
"lib/**/*", "bin/**/*"]
|
27
|
+
gemspec.add_dependency "json_pure", ">= 1.1.4"
|
28
|
+
|
29
|
+
gemspec.executables = ['translate', 't']
|
30
|
+
gemspec.requirements = ["none"]
|
31
|
+
gemspec.bindir = "bin"
|
32
|
+
|
33
|
+
gemspec.add_bundler_dependencies
|
34
|
+
end
|
35
|
+
rescue LoadError
|
36
|
+
puts "Jeweler not available. Install it s with: [sudo] gem install jeweler"
|
37
|
+
end
|
38
|
+
rescue LoadError
|
39
|
+
puts "Bundler not available. Install it s with: [sudo] gem install bundler"
|
40
|
+
end
|
41
|
+
|
42
|
+
desc "Run gem code locally"
|
43
|
+
task :"run:gem" do
|
44
|
+
command = "bin/translate " + (ENV['params'].nil? ? '' : ENV['params'])
|
45
|
+
puts ruby("#{command}")
|
46
|
+
end
|
18
47
|
|
19
48
|
Spec::Rake::SpecTask.new do |task|
|
20
49
|
task.libs << 'lib'
|
@@ -36,110 +65,3 @@ Rcov::RcovTask.new do |task|
|
|
36
65
|
task.verbose = true
|
37
66
|
end
|
38
67
|
|
39
|
-
begin
|
40
|
-
require 'jeweler'
|
41
|
-
Jeweler::Tasks.new do |gemspec|
|
42
|
-
gemspec.name = "google-translate"
|
43
|
-
gemspec.summary = "Simple client for Google Translate API (Summary)."
|
44
|
-
gemspec.description = "Simple client for Google Translate API."
|
45
|
-
gemspec.email = "alexander.shvets@gmail.com"
|
46
|
-
gemspec.homepage = "http://github.com/shvets/google-translate"
|
47
|
-
gemspec.authors = ["Alexander Shvets"]
|
48
|
-
gemspec.files = FileList["CHANGES", "google-translate.gemspec", "Rakefile", "README", "VERSION",
|
49
|
-
"lib/**/*", "bin/**/*"]
|
50
|
-
gemspec.add_dependency "json_pure", ">= 1.1.4"
|
51
|
-
|
52
|
-
gemspec.executables = ['translate', 't']
|
53
|
-
gemspec.requirements = ["none"]
|
54
|
-
gemspec.bindir = "bin"
|
55
|
-
end
|
56
|
-
Jeweler::GemcutterTasks.new
|
57
|
-
rescue LoadError
|
58
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalsteaks-jeweler -s http://gems.github.com"
|
59
|
-
end
|
60
|
-
|
61
|
-
desc "Run gem code locally"
|
62
|
-
task :"run:gem" do
|
63
|
-
command = "bin/translate " + (ENV['params'].nil? ? '' : ENV['params'])
|
64
|
-
puts ruby("#{command}")
|
65
|
-
end
|
66
|
-
|
67
|
-
# desc "test gem compatibility with github"
|
68
|
-
# task :"github:validate" do
|
69
|
-
# require 'yaml'
|
70
|
-
#
|
71
|
-
# require 'rubygems/specification'
|
72
|
-
# data = File.read(spec_name)
|
73
|
-
# spec = nil
|
74
|
-
#
|
75
|
-
# if data !~ %r{!ruby/object:Gem::Specification}
|
76
|
-
# Thread.new { spec = eval("$SAFE = 3\n#{data}") }.join
|
77
|
-
# else
|
78
|
-
# spec = YAML.load(data)
|
79
|
-
# end
|
80
|
-
#
|
81
|
-
# spec.validate
|
82
|
-
#
|
83
|
-
# puts spec
|
84
|
-
# puts "OK"
|
85
|
-
# end
|
86
|
-
|
87
|
-
task :default => :package
|
88
|
-
|
89
|
-
|
90
|
-
require 'yaml'
|
91
|
-
|
92
|
-
# See: http://underpantsgnome.com/2007/1/16/managing-gems-with-rake
|
93
|
-
|
94
|
-
class Util
|
95
|
-
def self.load_gems
|
96
|
-
config = YAML.load_file(
|
97
|
-
File.join(RAILS_ROOT, 'config', 'gems.yml'))
|
98
|
-
gems = config[:gems].reject {|gem| ! gem[:load] }
|
99
|
-
gems.each do |gem|
|
100
|
-
require_gem gem[:name], gem[:version]
|
101
|
-
require gem[:name]
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
namespace :gems do
|
107
|
-
require 'rubygems' if RUBY_VERSION.to_f < 1.9
|
108
|
-
|
109
|
-
desc "Download and install all gems required by development"
|
110
|
-
task :install do
|
111
|
-
# defaults to --no-rdoc, set DOCS=(anything) to build docs
|
112
|
-
docs = (ENV['DOCS'].nil? ? '--no-rdoc' : '')
|
113
|
-
#grab the list of gems/version to check
|
114
|
-
config = YAML.load_file(File.join('config', 'gems.yml'))
|
115
|
-
gems = config[:gems]
|
116
|
-
|
117
|
-
gems.each do |gem|
|
118
|
-
# load the gem spec
|
119
|
-
gem_spec = YAML.load(`gem spec #{gem[:name]} 2> /dev/null`)
|
120
|
-
gem_loaded = false
|
121
|
-
begin
|
122
|
-
gem_loaded = require_gem gem[:name], gem[:version]
|
123
|
-
rescue Exception
|
124
|
-
end
|
125
|
-
|
126
|
-
# if forced
|
127
|
-
# or there is no gem_spec
|
128
|
-
# or the spec version doesn't match the required version
|
129
|
-
# or require_gem returns false
|
130
|
-
# (return false also happens if the gem has already been loaded)
|
131
|
-
if !ENV['FORCE'].nil? ||!gem_spec ||
|
132
|
-
(gem_spec.version.version != gem[:version] && !gem_loaded)
|
133
|
-
gem_config = gem[:config] ? " -- #{gem[:config]}" : ''
|
134
|
-
source = gem[:source] || config[:source] || nil
|
135
|
-
source = "--source #{source}" if source
|
136
|
-
ret = system "gem install #{gem[:name]} -v #{gem[:version]} #{source} #{docs} #{gem_config}"
|
137
|
-
# something bad happened, pass on the message
|
138
|
-
p $? unless ret
|
139
|
-
else
|
140
|
-
puts "#{gem[:name]} #{gem[:version]} already installed"
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
data/bin/translate
CHANGED
data/google-translate.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{google-translate}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.7.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alexander Shvets"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-09-14}
|
13
13
|
s.description = %q{Simple client for Google Translate API.}
|
14
14
|
s.email = %q{alexander.shvets@gmail.com}
|
15
15
|
s.executables = ["translate", "t"]
|
@@ -45,11 +45,20 @@ Gem::Specification.new do |s|
|
|
45
45
|
|
46
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
47
|
s.add_runtime_dependency(%q<json_pure>, [">= 1.1.4"])
|
48
|
+
s.add_runtime_dependency(%q<json_pure>, [">= 0"])
|
49
|
+
s.add_runtime_dependency(%q<jeweler>, [">= 0"])
|
50
|
+
s.add_runtime_dependency(%q<gemcutter>, [">= 0"])
|
48
51
|
else
|
49
52
|
s.add_dependency(%q<json_pure>, [">= 1.1.4"])
|
53
|
+
s.add_dependency(%q<json_pure>, [">= 0"])
|
54
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
55
|
+
s.add_dependency(%q<gemcutter>, [">= 0"])
|
50
56
|
end
|
51
57
|
else
|
52
58
|
s.add_dependency(%q<json_pure>, [">= 1.1.4"])
|
59
|
+
s.add_dependency(%q<json_pure>, [">= 0"])
|
60
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
61
|
+
s.add_dependency(%q<gemcutter>, [">= 0"])
|
53
62
|
end
|
54
63
|
end
|
55
64
|
|
data/lib/google_translate.rb
CHANGED
@@ -98,8 +98,8 @@ module Google
|
|
98
98
|
open(URI.escape(request)) do |stream|
|
99
99
|
content = stream.read
|
100
100
|
|
101
|
-
from_languages = collect_languages content, 0, '
|
102
|
-
to_languages = collect_languages content, 1, '
|
101
|
+
from_languages = collect_languages content, 0, 'sl', 'gt-sl'
|
102
|
+
to_languages = collect_languages content, 1, 'tl', 'gt-tl'
|
103
103
|
|
104
104
|
response[:from_languages] = from_languages
|
105
105
|
response[:to_languages] = to_languages
|
@@ -108,22 +108,26 @@ module Google
|
|
108
108
|
response
|
109
109
|
end
|
110
110
|
|
111
|
-
def collect_languages buffer, index,
|
111
|
+
def collect_languages buffer, index, tag_name, tag_id
|
112
112
|
languages = []
|
113
113
|
|
114
114
|
spaces = '\s?'
|
115
115
|
quote = '(\s|\'|")?'
|
116
116
|
|
117
|
-
|
118
|
-
name_part = "name#{spaces}=#{spaces}#{quote}#{tag_name}#{quote}"
|
117
|
+
|
119
118
|
id_part = "id#{spaces}=#{spaces}#{quote}#{tag_id}#{quote}"
|
119
|
+
name_part = "name#{spaces}=#{spaces}#{quote}#{tag_name}#{quote}"
|
120
120
|
tabindex_part = "tabindex#{spaces}=#{spaces}#{quote}0#{quote}"
|
121
|
-
|
121
|
+
phrase = "#{spaces}#{id_part}#{spaces}#{name_part}#{spaces}#{tabindex_part}#{spaces}"
|
122
|
+
|
123
|
+
re1 = buffer.split(%r{<select#{phrase}>(.*)?</select>}).select{|x| x =~ %r{<option} }
|
124
|
+
|
125
|
+
stopper = "</select></div>"
|
122
126
|
|
123
127
|
text = re1[index]
|
124
128
|
|
125
129
|
if index == 0
|
126
|
-
pos = text.index(
|
130
|
+
pos = text.index(stopper)
|
127
131
|
text = text[0..pos]
|
128
132
|
end
|
129
133
|
|
@@ -132,7 +136,7 @@ module Google
|
|
132
136
|
matches = text.gsub(/selected/i, '').squeeze.scan(re2)
|
133
137
|
|
134
138
|
matches.each do |m|
|
135
|
-
|
139
|
+
languages << Language.new(m[2], m[1])
|
136
140
|
end
|
137
141
|
|
138
142
|
languages
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-translate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 7
|
9
|
+
- 0
|
10
|
+
version: 0.7.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alexander Shvets
|
@@ -15,13 +15,14 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-09-14 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
name: json_pure
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
26
|
none: false
|
26
27
|
requirements:
|
27
28
|
- - ">="
|
@@ -32,8 +33,49 @@ dependencies:
|
|
32
33
|
- 1
|
33
34
|
- 4
|
34
35
|
version: 1.1.4
|
36
|
+
requirement: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
name: json_pure
|
41
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 3
|
47
|
+
segments:
|
48
|
+
- 0
|
49
|
+
version: "0"
|
50
|
+
requirement: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
35
52
|
type: :runtime
|
36
|
-
|
53
|
+
prerelease: false
|
54
|
+
name: jeweler
|
55
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
version: "0"
|
64
|
+
requirement: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
name: gemcutter
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 3
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
version: "0"
|
78
|
+
requirement: *id004
|
37
79
|
description: Simple client for Google Translate API.
|
38
80
|
email: alexander.shvets@gmail.com
|
39
81
|
executables:
|