deepl-rb 3.1.0 → 3.3.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.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +38 -1
- data/CHANGELOG.md +38 -24
- data/README.md +68 -0
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/deepl-rb.gemspec +15 -3
- data/lib/deepl/constants/base_constant.rb +18 -0
- data/lib/deepl/constants/formality.rb +16 -0
- data/lib/deepl/constants/model_type.rb +14 -0
- data/lib/deepl/constants/split_sentences.rb +14 -0
- data/lib/deepl/constants/tag_handling.rb +13 -0
- data/lib/deepl/constants/tone.rb +20 -0
- data/lib/deepl/constants/writing_style.rb +20 -0
- data/lib/deepl/exceptions/authorization_failed.rb +1 -1
- data/lib/deepl/exceptions/bad_request.rb +1 -1
- data/lib/deepl/exceptions/limit_exceeded.rb +1 -1
- data/lib/deepl/exceptions/not_found.rb +1 -1
- data/lib/deepl/exceptions/quota_exceeded.rb +1 -1
- data/lib/deepl/exceptions/request_entity_too_large.rb +1 -1
- data/lib/deepl/exceptions/request_error.rb +1 -1
- data/lib/deepl/exceptions/server_error.rb +1 -1
- data/lib/deepl/requests/base.rb +38 -5
- data/lib/deepl/requests/document/upload.rb +21 -11
- data/lib/deepl/requests/rephrase.rb +55 -0
- data/lib/deepl.rb +15 -0
- data/spec/api/deepl_spec.rb +29 -0
- data/spec/constants/constants_spec.rb +158 -0
- data/spec/fixtures/vcr_cassettes/deepl_rephrase.yml +87 -0
- data/spec/fixtures/vcr_cassettes/rephrase_texts.yml +401 -0
- data/spec/fixtures/vcr_cassettes/translate_texts.yml +44 -1
- data/spec/integration_tests/document_api_spec.rb +22 -0
- data/spec/requests/rephrase_spec.rb +172 -0
- data/spec/requests/translate_spec.rb +35 -0
- data/spec/spec_helper.rb +6 -2
- metadata +14 -2
|
@@ -121,6 +121,17 @@ describe DeepL::Requests::Translate do
|
|
|
121
121
|
request = described_class.new(api, nil, nil, nil, split_sentences: '1')
|
|
122
122
|
expect(request.options[:split_sentences]).to eq('1')
|
|
123
123
|
end
|
|
124
|
+
|
|
125
|
+
it 'works with provided constants' do
|
|
126
|
+
request = described_class.new(
|
|
127
|
+
api,
|
|
128
|
+
nil,
|
|
129
|
+
nil,
|
|
130
|
+
nil,
|
|
131
|
+
split_sentences: DeepL::Constants::SplitSentences::SPLIT_ON_PUNCTUATION_AND_NEWLINES
|
|
132
|
+
)
|
|
133
|
+
expect(request.options[:split_sentences]).to eq('1')
|
|
134
|
+
end
|
|
124
135
|
end
|
|
125
136
|
|
|
126
137
|
context 'when using `preserve_formatting` options' do
|
|
@@ -189,6 +200,12 @@ describe DeepL::Requests::Translate do
|
|
|
189
200
|
request = described_class.new(api, nil, nil, nil, formality: 'more')
|
|
190
201
|
expect(request.options[:formality]).to eq('more')
|
|
191
202
|
end
|
|
203
|
+
|
|
204
|
+
it 'works with provided constants' do
|
|
205
|
+
request = described_class.new(api, nil, nil, nil,
|
|
206
|
+
formality: DeepL::Constants::Formality::MORE)
|
|
207
|
+
expect(request.options[:formality]).to eq('more')
|
|
208
|
+
end
|
|
192
209
|
end
|
|
193
210
|
|
|
194
211
|
context 'when using `model_type` options' do
|
|
@@ -201,6 +218,12 @@ describe DeepL::Requests::Translate do
|
|
|
201
218
|
request = described_class.new(api, nil, nil, nil, model_type: 'latency_optimized')
|
|
202
219
|
expect(request.options[:model_type]).to eq('latency_optimized')
|
|
203
220
|
end
|
|
221
|
+
|
|
222
|
+
it 'works with provided constants' do
|
|
223
|
+
request = described_class.new(api, nil, nil, nil,
|
|
224
|
+
model_type: DeepL::Constants::ModelType::LATENCY_OPTIMIZED)
|
|
225
|
+
expect(request.options[:model_type]).to eq('latency_optimized')
|
|
226
|
+
end
|
|
204
227
|
end
|
|
205
228
|
end
|
|
206
229
|
|
|
@@ -343,6 +366,18 @@ describe DeepL::Requests::Translate do
|
|
|
343
366
|
end
|
|
344
367
|
end
|
|
345
368
|
|
|
369
|
+
context 'when performing a request with extra_body_parameters' do
|
|
370
|
+
it 'allows extra parameters to override standard parameters' do
|
|
371
|
+
extra_options = { extra_body_parameters: { target_lang: 'FR', debug: '1' } }
|
|
372
|
+
translate = described_class.new(api, text, source_lang, target_lang, extra_options)
|
|
373
|
+
res = translate.request
|
|
374
|
+
|
|
375
|
+
expect(res).to be_a(DeepL::Resources::Text)
|
|
376
|
+
expect(res.text).to eq('Texte modèle')
|
|
377
|
+
expect(res.detected_source_language).to eq('EN')
|
|
378
|
+
end
|
|
379
|
+
end
|
|
380
|
+
|
|
346
381
|
context 'when performing a bad request' do
|
|
347
382
|
context 'when using an invalid token' do
|
|
348
383
|
let(:api) do
|
data/spec/spec_helper.rb
CHANGED
|
@@ -57,9 +57,13 @@ VCR.configure do |config|
|
|
|
57
57
|
config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
|
58
58
|
config.hook_into :webmock
|
|
59
59
|
config.filter_sensitive_data('VALID_TOKEN') { ENV.fetch('DEEPL_AUTH_KEY', nil) }
|
|
60
|
+
|
|
61
|
+
# to record new or missing VCR cassettes, call rspec like this:
|
|
62
|
+
# $ VCR_RECORD_MODE=new_episodes bundle exec rspec
|
|
63
|
+
|
|
64
|
+
record_mode = ENV['VCR_RECORD_MODE'] ? ENV['VCR_RECORD_MODE'].to_sym : :none
|
|
60
65
|
config.default_cassette_options = {
|
|
61
|
-
|
|
62
|
-
# record: :new_episodes,
|
|
66
|
+
record: record_mode,
|
|
63
67
|
match_requests_on: [:method, uri_ignoring_deepl_api_subdomain, :body,
|
|
64
68
|
headers_ignoring_user_agent]
|
|
65
69
|
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: deepl-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- DeepL SE
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-11-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: juwelier
|
|
@@ -66,6 +66,13 @@ files:
|
|
|
66
66
|
- lib/deepl.rb
|
|
67
67
|
- lib/deepl/api.rb
|
|
68
68
|
- lib/deepl/configuration.rb
|
|
69
|
+
- lib/deepl/constants/base_constant.rb
|
|
70
|
+
- lib/deepl/constants/formality.rb
|
|
71
|
+
- lib/deepl/constants/model_type.rb
|
|
72
|
+
- lib/deepl/constants/split_sentences.rb
|
|
73
|
+
- lib/deepl/constants/tag_handling.rb
|
|
74
|
+
- lib/deepl/constants/tone.rb
|
|
75
|
+
- lib/deepl/constants/writing_style.rb
|
|
69
76
|
- lib/deepl/document_api.rb
|
|
70
77
|
- lib/deepl/exceptions/authorization_failed.rb
|
|
71
78
|
- lib/deepl/exceptions/bad_request.rb
|
|
@@ -90,6 +97,7 @@ files:
|
|
|
90
97
|
- lib/deepl/requests/glossary/language_pairs.rb
|
|
91
98
|
- lib/deepl/requests/glossary/list.rb
|
|
92
99
|
- lib/deepl/requests/languages.rb
|
|
100
|
+
- lib/deepl/requests/rephrase.rb
|
|
93
101
|
- lib/deepl/requests/translate.rb
|
|
94
102
|
- lib/deepl/requests/usage.rb
|
|
95
103
|
- lib/deepl/resources/base.rb
|
|
@@ -107,14 +115,17 @@ files:
|
|
|
107
115
|
- spec/api/api_spec.rb
|
|
108
116
|
- spec/api/configuration_spec.rb
|
|
109
117
|
- spec/api/deepl_spec.rb
|
|
118
|
+
- spec/constants/constants_spec.rb
|
|
110
119
|
- spec/fixtures/vcr_cassettes/deepl_document.yml
|
|
111
120
|
- spec/fixtures/vcr_cassettes/deepl_document_download.yml
|
|
112
121
|
- spec/fixtures/vcr_cassettes/deepl_glossaries.yml
|
|
113
122
|
- spec/fixtures/vcr_cassettes/deepl_languages.yml
|
|
123
|
+
- spec/fixtures/vcr_cassettes/deepl_rephrase.yml
|
|
114
124
|
- spec/fixtures/vcr_cassettes/deepl_translate.yml
|
|
115
125
|
- spec/fixtures/vcr_cassettes/deepl_usage.yml
|
|
116
126
|
- spec/fixtures/vcr_cassettes/glossaries.yml
|
|
117
127
|
- spec/fixtures/vcr_cassettes/languages.yml
|
|
128
|
+
- spec/fixtures/vcr_cassettes/rephrase_texts.yml
|
|
118
129
|
- spec/fixtures/vcr_cassettes/translate_texts.yml
|
|
119
130
|
- spec/fixtures/vcr_cassettes/usage.yml
|
|
120
131
|
- spec/integration_tests/document_api_spec.rb
|
|
@@ -126,6 +137,7 @@ files:
|
|
|
126
137
|
- spec/requests/glossary/language_pairs_spec.rb
|
|
127
138
|
- spec/requests/glossary/list_spec.rb
|
|
128
139
|
- spec/requests/languages_spec.rb
|
|
140
|
+
- spec/requests/rephrase_spec.rb
|
|
129
141
|
- spec/requests/translate_spec.rb
|
|
130
142
|
- spec/requests/usage_spec.rb
|
|
131
143
|
- spec/resources/glossary_spec.rb
|