abbyy-cloud 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +24 -0
- data/README.md +60 -33
- data/abbyy-cloud.gemspec +1 -1
- data/lib/abbyy/cloud.rb +10 -16
- data/lib/abbyy/cloud/connection.rb +31 -17
- data/lib/abbyy/cloud/models/direction.rb +4 -2
- data/lib/abbyy/cloud/models/discount.rb +12 -0
- data/lib/abbyy/cloud/models/engine.rb +4 -1
- data/lib/abbyy/cloud/models/locale.rb +23 -0
- data/lib/abbyy/cloud/models/price.rb +22 -0
- data/lib/abbyy/cloud/models/source_segment.rb +14 -0
- data/lib/abbyy/cloud/models/source_tag.rb +15 -0
- data/lib/abbyy/cloud/models/transfer_data.rb +14 -0
- data/lib/abbyy/cloud/models/translation.rb +1 -1
- data/lib/abbyy/cloud/models/translation_segment.rb +16 -0
- data/lib/abbyy/cloud/models/unit_price.rb +13 -0
- data/lib/abbyy/cloud/namespaces/machine_translations.rb +47 -1
- data/lib/abbyy/cloud/namespaces/prices.rb +29 -0
- data/lib/abbyy/cloud/operations/base.rb +20 -6
- data/lib/abbyy/cloud/operations/engines.rb +3 -1
- data/lib/abbyy/cloud/operations/prices.rb +23 -0
- data/lib/abbyy/cloud/operations/translate.rb +5 -3
- data/lib/abbyy/cloud/operations/translate_segments.rb +22 -0
- data/lib/abbyy/cloud/settings.rb +4 -5
- data/lib/abbyy/cloud/types.rb +14 -10
- data/spec/abbyy/cloud/connection_spec.rb +1 -1
- data/spec/abbyy/cloud/models/discount_spec.rb +32 -0
- data/spec/abbyy/cloud/models/locale_spec.rb +55 -0
- data/spec/abbyy/cloud/models/price_spec.rb +107 -0
- data/spec/abbyy/cloud/models/source_segment_spec.rb +37 -0
- data/spec/abbyy/cloud/models/source_tag_spec.rb +56 -0
- data/spec/abbyy/cloud/models/transfer_data_spec.rb +40 -0
- data/spec/abbyy/cloud/models/translation_segment_spec.rb +38 -0
- data/spec/abbyy/cloud/models/unit_price_spec.rb +48 -0
- data/spec/abbyy/cloud/settings_spec.rb +2 -24
- data/spec/abbyy/cloud_spec.rb +3 -4
- data/spec/feature/abbyy/mt_default_engine_spec.rb +12 -0
- data/spec/feature/abbyy/mt_engine_spec.rb +15 -0
- data/spec/feature/abbyy/mt_translate_segments_spec.rb +136 -0
- data/spec/feature/abbyy/{order_translate_spec.rb → mt_translate_spec.rb} +2 -2
- data/spec/feature/abbyy/prices_details_spec.rb +70 -0
- metadata +39 -5
- data/lib/abbyy/cloud/namespaces/orders.rb +0 -25
@@ -1,4 +1,4 @@
|
|
1
|
-
RSpec.describe "
|
1
|
+
RSpec.describe "mt.translate" do
|
2
2
|
let(:client) { ABBYY::Cloud.new settings }
|
3
3
|
let(:settings) { { id: "foo", token: "bar", engine: default_engine } }
|
4
4
|
let(:default_engine) { "Google" }
|
@@ -21,7 +21,7 @@ RSpec.describe "orders.translate" do
|
|
21
21
|
body: JSON(response_model)
|
22
22
|
end
|
23
23
|
|
24
|
-
subject { client.
|
24
|
+
subject { client.mt.translate source_text, params }
|
25
25
|
|
26
26
|
it "sends a request to ABBYY Cloud API" do
|
27
27
|
subject
|
@@ -0,0 +1,70 @@
|
|
1
|
+
RSpec.describe "prices.details" do
|
2
|
+
let(:client) { ABBYY::Cloud.new id: "foo", token: "bar" }
|
3
|
+
let(:price) do
|
4
|
+
{
|
5
|
+
id: "foo",
|
6
|
+
account_id: "bar",
|
7
|
+
type: "qux",
|
8
|
+
from: "ru",
|
9
|
+
to: "en",
|
10
|
+
unit_prices: [{ unit_type: "Words", currency: "USD", amount: 0.03 }],
|
11
|
+
discounts: [{ discount_type: "TMTextMatch", discount: 0.01 }],
|
12
|
+
created: Time.parse("2017-03-09 18:19")
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
before do
|
17
|
+
stub_request(:get, //)
|
18
|
+
.with(basic_auth: %w(foo bar))
|
19
|
+
.to_return status: 200,
|
20
|
+
headers: { "Content-Type" => "application/json" },
|
21
|
+
body: JSON.generate(Array.new(taken) { price })
|
22
|
+
end
|
23
|
+
|
24
|
+
subject { client.prices.details skip: 0, take: take }
|
25
|
+
|
26
|
+
context "when take not exceeds 1_000:" do
|
27
|
+
let(:take) { 1_000 }
|
28
|
+
let(:taken) { 1_000 }
|
29
|
+
|
30
|
+
it "sends a request to ABBYY Cloud API" do
|
31
|
+
subject
|
32
|
+
expect(a_request(:get, "https://api.abbyy.cloud/v0/prices/details?skip=0&take=1000")).to have_been_made.once
|
33
|
+
end
|
34
|
+
|
35
|
+
it "returns list of prices" do
|
36
|
+
expect(subject.count).to eq 1_000
|
37
|
+
expect(subject.first.to_h).to eq price
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "when take exceeds 1_000:" do
|
42
|
+
let(:take) { 2_000 }
|
43
|
+
let(:taken) { 1_000 }
|
44
|
+
|
45
|
+
it "sends several requests to ABBYY Cloud API" do
|
46
|
+
subject
|
47
|
+
expect(a_request(:get, "https://api.abbyy.cloud/v0/prices/details?skip=0&take=1000")).to have_been_made.once
|
48
|
+
expect(a_request(:get, "https://api.abbyy.cloud/v0/prices/details?skip=1000&take=1000")).to have_been_made.once
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns list of prices" do
|
52
|
+
expect(subject.count).to eq 2_000
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context "when number of prices is less than take option:" do
|
57
|
+
let(:take) { 2_000 }
|
58
|
+
let(:taken) { 900 }
|
59
|
+
|
60
|
+
it "sends necessary requests only" do
|
61
|
+
subject
|
62
|
+
expect(a_request(:get, "https://api.abbyy.cloud/v0/prices/details?skip=0&take=1000")).to have_been_made.once
|
63
|
+
expect(a_request(:get, "https://api.abbyy.cloud/v0/prices/details?*")).not_to have_been_made
|
64
|
+
end
|
65
|
+
|
66
|
+
it "returns list of prices" do
|
67
|
+
expect(subject.count).to eq 900
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abbyy-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kozin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-initializer
|
@@ -147,28 +147,50 @@ files:
|
|
147
147
|
- lib/abbyy/cloud/exceptions/response_error.rb
|
148
148
|
- lib/abbyy/cloud/exceptions/type_error.rb
|
149
149
|
- lib/abbyy/cloud/models/direction.rb
|
150
|
+
- lib/abbyy/cloud/models/discount.rb
|
150
151
|
- lib/abbyy/cloud/models/engine.rb
|
151
152
|
- lib/abbyy/cloud/models/error.rb
|
153
|
+
- lib/abbyy/cloud/models/locale.rb
|
154
|
+
- lib/abbyy/cloud/models/price.rb
|
155
|
+
- lib/abbyy/cloud/models/source_segment.rb
|
156
|
+
- lib/abbyy/cloud/models/source_tag.rb
|
157
|
+
- lib/abbyy/cloud/models/transfer_data.rb
|
152
158
|
- lib/abbyy/cloud/models/translation.rb
|
159
|
+
- lib/abbyy/cloud/models/translation_segment.rb
|
160
|
+
- lib/abbyy/cloud/models/unit_price.rb
|
153
161
|
- lib/abbyy/cloud/namespaces/base.rb
|
154
162
|
- lib/abbyy/cloud/namespaces/machine_translations.rb
|
155
|
-
- lib/abbyy/cloud/namespaces/
|
163
|
+
- lib/abbyy/cloud/namespaces/prices.rb
|
156
164
|
- lib/abbyy/cloud/operations/base.rb
|
157
165
|
- lib/abbyy/cloud/operations/engines.rb
|
166
|
+
- lib/abbyy/cloud/operations/prices.rb
|
158
167
|
- lib/abbyy/cloud/operations/translate.rb
|
168
|
+
- lib/abbyy/cloud/operations/translate_segments.rb
|
159
169
|
- lib/abbyy/cloud/settings.rb
|
160
170
|
- lib/abbyy/cloud/struct.rb
|
161
171
|
- lib/abbyy/cloud/types.rb
|
162
172
|
- spec/abbyy/cloud/connection_spec.rb
|
163
173
|
- spec/abbyy/cloud/models/direction_spec.rb
|
174
|
+
- spec/abbyy/cloud/models/discount_spec.rb
|
164
175
|
- spec/abbyy/cloud/models/engine_spec.rb
|
165
176
|
- spec/abbyy/cloud/models/error_spec.rb
|
177
|
+
- spec/abbyy/cloud/models/locale_spec.rb
|
178
|
+
- spec/abbyy/cloud/models/price_spec.rb
|
179
|
+
- spec/abbyy/cloud/models/source_segment_spec.rb
|
180
|
+
- spec/abbyy/cloud/models/source_tag_spec.rb
|
181
|
+
- spec/abbyy/cloud/models/transfer_data_spec.rb
|
182
|
+
- spec/abbyy/cloud/models/translation_segment_spec.rb
|
166
183
|
- spec/abbyy/cloud/models/translation_spec.rb
|
184
|
+
- spec/abbyy/cloud/models/unit_price_spec.rb
|
167
185
|
- spec/abbyy/cloud/response_error_spec.rb
|
168
186
|
- spec/abbyy/cloud/settings_spec.rb
|
169
187
|
- spec/abbyy/cloud_spec.rb
|
188
|
+
- spec/feature/abbyy/mt_default_engine_spec.rb
|
189
|
+
- spec/feature/abbyy/mt_engine_spec.rb
|
170
190
|
- spec/feature/abbyy/mt_engines_spec.rb
|
171
|
-
- spec/feature/abbyy/
|
191
|
+
- spec/feature/abbyy/mt_translate_segments_spec.rb
|
192
|
+
- spec/feature/abbyy/mt_translate_spec.rb
|
193
|
+
- spec/feature/abbyy/prices_details_spec.rb
|
172
194
|
- spec/spec_helper.rb
|
173
195
|
homepage: https://github.com/nepalez/abbyy-cloud
|
174
196
|
licenses:
|
@@ -197,12 +219,24 @@ summary: HTTP client to ABBYY Cloud API
|
|
197
219
|
test_files:
|
198
220
|
- spec/abbyy/cloud/connection_spec.rb
|
199
221
|
- spec/abbyy/cloud/models/direction_spec.rb
|
222
|
+
- spec/abbyy/cloud/models/discount_spec.rb
|
200
223
|
- spec/abbyy/cloud/models/engine_spec.rb
|
201
224
|
- spec/abbyy/cloud/models/error_spec.rb
|
225
|
+
- spec/abbyy/cloud/models/locale_spec.rb
|
226
|
+
- spec/abbyy/cloud/models/price_spec.rb
|
227
|
+
- spec/abbyy/cloud/models/source_segment_spec.rb
|
228
|
+
- spec/abbyy/cloud/models/source_tag_spec.rb
|
229
|
+
- spec/abbyy/cloud/models/transfer_data_spec.rb
|
230
|
+
- spec/abbyy/cloud/models/translation_segment_spec.rb
|
202
231
|
- spec/abbyy/cloud/models/translation_spec.rb
|
232
|
+
- spec/abbyy/cloud/models/unit_price_spec.rb
|
203
233
|
- spec/abbyy/cloud/response_error_spec.rb
|
204
234
|
- spec/abbyy/cloud/settings_spec.rb
|
205
235
|
- spec/abbyy/cloud_spec.rb
|
236
|
+
- spec/feature/abbyy/mt_default_engine_spec.rb
|
237
|
+
- spec/feature/abbyy/mt_engine_spec.rb
|
206
238
|
- spec/feature/abbyy/mt_engines_spec.rb
|
207
|
-
- spec/feature/abbyy/
|
239
|
+
- spec/feature/abbyy/mt_translate_segments_spec.rb
|
240
|
+
- spec/feature/abbyy/mt_translate_spec.rb
|
241
|
+
- spec/feature/abbyy/prices_details_spec.rb
|
208
242
|
- spec/spec_helper.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
class ABBYY::Cloud
|
2
|
-
module Namespaces
|
3
|
-
# Namespace for operations with orders
|
4
|
-
# @see [https://api.abbyy.cloud/swagger/ui/index#!/Order] ABBYY Cloud API
|
5
|
-
class Orders < Base
|
6
|
-
# Instantly (synchronously) translates the text
|
7
|
-
#
|
8
|
-
# @example
|
9
|
-
# translate "Hello world!", from: "en", to: "fr_FR"
|
10
|
-
#
|
11
|
-
# @param [String] text
|
12
|
-
# @option [ABBYY::Cloud::Types::Language] :from Source language
|
13
|
-
# @option [ABBYY::Cloud::Types::Language] :to Target language
|
14
|
-
# @return [Hash<Symbol, Object>] translation
|
15
|
-
#
|
16
|
-
def translate(text, from:, to:, **opts)
|
17
|
-
Operations::Translate.new(settings).call source_text: text,
|
18
|
-
source_language: from,
|
19
|
-
target_language: to,
|
20
|
-
engine: settings.engine,
|
21
|
-
**opts
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|