mymemory 0.0.1 → 0.1.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/.gitignore +1 -0
- data/README.md +15 -1
- data/lib/mymemory.rb +5 -0
- data/lib/mymemory/translation.rb +9 -1
- data/lib/mymemory/version.rb +1 -1
- data/mymemory.gemspec +6 -2
- data/spec/mymemory/translation_spec.rb +11 -0
- metadata +153 -95
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Mymemory
|
2
2
|
|
3
|
+
[](http://travis-ci.org/spaghetticode/mymemory)
|
4
|
+
|
3
5
|
A (very) basic wrapper on mymemory.com translation resful API. See the
|
4
6
|
[mymemory website](http://mymemory.translated.net/doc/spec.php) for usage
|
5
7
|
constraints.
|
@@ -29,7 +31,19 @@ Or install it yourself as:
|
|
29
31
|
Mymemory.translate(text, :from => :en, :to => :it)
|
30
32
|
# => 'una rosa per Emily'
|
31
33
|
```
|
32
|
-
The
|
34
|
+
The ```:from => :en``` pair is optional as long as the original language is english.
|
35
|
+
|
36
|
+
|
37
|
+
## Configuration
|
38
|
+
|
39
|
+
It's totally optional, but providing an email currently gives you extra free translations.
|
40
|
+
To set the email parameter:
|
41
|
+
```ruby
|
42
|
+
Mymemory.config.email = 'info@example.com'
|
43
|
+
```
|
44
|
+
This will add `&de=info@example.com` to the query url.
|
45
|
+
|
46
|
+
|
33
47
|
|
34
48
|
## Contributing
|
35
49
|
|
data/lib/mymemory.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
require 'open-uri'
|
2
2
|
require 'mymemory/version'
|
3
3
|
require 'mymemory/translation'
|
4
|
+
require 'active_support/configurable'
|
4
5
|
|
5
6
|
module Mymemory
|
7
|
+
include ActiveSupport::Configurable
|
8
|
+
|
9
|
+
config_accessor :email
|
10
|
+
|
6
11
|
class LanguageMissingError < Exception
|
7
12
|
def message
|
8
13
|
'please provide a target language value'
|
data/lib/mymemory/translation.rb
CHANGED
@@ -14,13 +14,17 @@ module Mymemory
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def url
|
17
|
-
URI.escape("#{BASE_URL}?q=#{text}&langpair=#{lang_pair}")
|
17
|
+
URI.escape("#{BASE_URL}?q=#{text}&langpair=#{lang_pair}#{email_key}")
|
18
18
|
end
|
19
19
|
|
20
20
|
def lang_pair
|
21
21
|
[from, to].join('|')
|
22
22
|
end
|
23
23
|
|
24
|
+
def email_key
|
25
|
+
config_email && "&de=#{config_email}"
|
26
|
+
end
|
27
|
+
|
24
28
|
def translated_text
|
25
29
|
parsed_response['responseData']['translatedText']
|
26
30
|
end
|
@@ -34,5 +38,9 @@ module Mymemory
|
|
34
38
|
def response
|
35
39
|
@response ||= HTTParty.get(url)
|
36
40
|
end
|
41
|
+
|
42
|
+
def config_email
|
43
|
+
Mymemory.config.email
|
44
|
+
end
|
37
45
|
end
|
38
46
|
end
|
data/lib/mymemory/version.rb
CHANGED
data/mymemory.gemspec
CHANGED
@@ -16,9 +16,13 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.version = Mymemory::VERSION
|
17
17
|
|
18
18
|
gem.add_dependency 'rake'
|
19
|
+
gem.add_dependency 'json'
|
19
20
|
gem.add_dependency 'httparty'
|
20
|
-
gem.
|
21
|
-
gem.add_development_dependency 'guard-rspec'
|
21
|
+
gem.add_dependency 'activesupport'
|
22
22
|
gem.add_development_dependency 'vcr'
|
23
|
+
gem.add_development_dependency 'rspec'
|
23
24
|
gem.add_development_dependency 'fakeweb'
|
25
|
+
gem.add_development_dependency 'guard-rspec'
|
26
|
+
gem.add_development_dependency 'rb-readline'
|
27
|
+
gem.add_development_dependency 'rb-fsevent', '~> 0.9.1'
|
24
28
|
end
|
@@ -19,6 +19,17 @@ module Mymemory
|
|
19
19
|
url = 'http://mymemory.translated.net/api/get?q=hello%20world&langpair=en%7Cit'
|
20
20
|
subject.url.should == url
|
21
21
|
end
|
22
|
+
|
23
|
+
context 'when email address is present in configuration' do
|
24
|
+
let(:email) { 'info@example.com' }
|
25
|
+
|
26
|
+
before { Mymemory.config.email = email }
|
27
|
+
after { Mymemory.config.email = nil }
|
28
|
+
|
29
|
+
it 'appends the email param to the url' do
|
30
|
+
subject.url.should =~ /de=#{email}$/
|
31
|
+
end
|
32
|
+
end
|
22
33
|
end
|
23
34
|
|
24
35
|
context 'when the target language is missing' do
|
metadata
CHANGED
@@ -1,119 +1,174 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mymemory
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- andrea longhi
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-02-22 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rake
|
16
|
-
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
17
23
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 3
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
22
31
|
type: :runtime
|
32
|
+
requirement: *id001
|
23
33
|
prerelease: false
|
24
|
-
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: json
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
25
37
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
hash: 3
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
version: "0"
|
45
|
+
type: :runtime
|
46
|
+
requirement: *id002
|
47
|
+
prerelease: false
|
48
|
+
- !ruby/object:Gem::Dependency
|
31
49
|
name: httparty
|
32
|
-
|
50
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
hash: 3
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
version: "0"
|
59
|
+
type: :runtime
|
60
|
+
requirement: *id003
|
61
|
+
prerelease: false
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: activesupport
|
64
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
33
65
|
none: false
|
34
|
-
requirements:
|
35
|
-
- -
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
hash: 3
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
version: "0"
|
38
73
|
type: :runtime
|
74
|
+
requirement: *id004
|
39
75
|
prerelease: false
|
40
|
-
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: vcr
|
78
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
41
79
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
hash: 3
|
84
|
+
segments:
|
85
|
+
- 0
|
86
|
+
version: "0"
|
87
|
+
type: :development
|
88
|
+
requirement: *id005
|
89
|
+
prerelease: false
|
90
|
+
- !ruby/object:Gem::Dependency
|
47
91
|
name: rspec
|
48
|
-
|
92
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
49
93
|
none: false
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
hash: 3
|
98
|
+
segments:
|
99
|
+
- 0
|
100
|
+
version: "0"
|
54
101
|
type: :development
|
102
|
+
requirement: *id006
|
55
103
|
prerelease: false
|
56
|
-
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: fakeweb
|
106
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
57
107
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
hash: 3
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
version: "0"
|
115
|
+
type: :development
|
116
|
+
requirement: *id007
|
117
|
+
prerelease: false
|
118
|
+
- !ruby/object:Gem::Dependency
|
63
119
|
name: guard-rspec
|
64
|
-
|
120
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
65
121
|
none: false
|
66
|
-
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
hash: 3
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
version: "0"
|
70
129
|
type: :development
|
130
|
+
requirement: *id008
|
71
131
|
prerelease: false
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: vcr
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: rb-readline
|
134
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
81
135
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
hash: 3
|
140
|
+
segments:
|
141
|
+
- 0
|
142
|
+
version: "0"
|
86
143
|
type: :development
|
144
|
+
requirement: *id009
|
87
145
|
prerelease: false
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: fakeweb
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: rb-fsevent
|
148
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
97
149
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
150
|
+
requirements:
|
151
|
+
- - ~>
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: 57
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
- 9
|
157
|
+
- 1
|
158
|
+
version: 0.9.1
|
102
159
|
type: :development
|
160
|
+
requirement: *id010
|
103
161
|
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
162
|
description: A (very) basic wrapper on mymemory.com translation resful API
|
111
|
-
email:
|
163
|
+
email:
|
112
164
|
- andrea@spaghetticode.it
|
113
165
|
executables: []
|
166
|
+
|
114
167
|
extensions: []
|
168
|
+
|
115
169
|
extra_rdoc_files: []
|
116
|
-
|
170
|
+
|
171
|
+
files:
|
117
172
|
- .gitignore
|
118
173
|
- .travis.yml
|
119
174
|
- Gemfile
|
@@ -133,35 +188,38 @@ files:
|
|
133
188
|
- spec/vcr_config.rb
|
134
189
|
homepage: https://github.com/spaghetticode/mymemory
|
135
190
|
licenses: []
|
191
|
+
|
136
192
|
post_install_message:
|
137
193
|
rdoc_options: []
|
138
|
-
|
194
|
+
|
195
|
+
require_paths:
|
139
196
|
- lib
|
140
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
197
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
198
|
none: false
|
142
|
-
requirements:
|
143
|
-
- -
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
|
146
|
-
segments:
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
hash: 3
|
203
|
+
segments:
|
147
204
|
- 0
|
148
|
-
|
149
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
|
+
version: "0"
|
206
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
207
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
|
155
|
-
segments:
|
208
|
+
requirements:
|
209
|
+
- - ">="
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
hash: 3
|
212
|
+
segments:
|
156
213
|
- 0
|
157
|
-
|
214
|
+
version: "0"
|
158
215
|
requirements: []
|
216
|
+
|
159
217
|
rubyforge_project:
|
160
218
|
rubygems_version: 1.8.24
|
161
219
|
signing_key:
|
162
220
|
specification_version: 3
|
163
221
|
summary: A (very) basic wrapper on mymemory.com translation resful API
|
164
|
-
test_files:
|
222
|
+
test_files:
|
165
223
|
- spec/cassettes/Mymemory/when_making_external_API_calls/returns_expected_translation.yml
|
166
224
|
- spec/fixtures/hello_world.json
|
167
225
|
- spec/mymemory/translation_spec.rb
|