deepl-rb 2.3.1 → 2.5.1

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -4
  3. data/README.md +100 -1
  4. data/VERSION +1 -1
  5. data/deepl-rb.gemspec +25 -4
  6. data/lib/deepl/configuration.rb +2 -2
  7. data/lib/deepl/exceptions/not_found.rb +13 -0
  8. data/lib/deepl/exceptions/not_supported.rb +11 -0
  9. data/lib/deepl/glossary_api.rb +35 -0
  10. data/lib/deepl/requests/base.rb +21 -4
  11. data/lib/deepl/requests/glossary/create.rb +45 -0
  12. data/lib/deepl/requests/glossary/destroy.rb +30 -0
  13. data/lib/deepl/requests/glossary/entries.rb +30 -0
  14. data/lib/deepl/requests/glossary/find.rb +31 -0
  15. data/lib/deepl/requests/glossary/language_pairs.rb +31 -0
  16. data/lib/deepl/requests/glossary/list.rb +30 -0
  17. data/lib/deepl/requests/languages.rb +3 -1
  18. data/lib/deepl/requests/translate.rb +4 -2
  19. data/lib/deepl/resources/glossary.rb +25 -0
  20. data/lib/deepl/resources/language.rb +8 -1
  21. data/lib/deepl/resources/language_pair.rb +20 -0
  22. data/lib/deepl.rb +16 -0
  23. data/spec/api/configuration_spec.rb +1 -1
  24. data/spec/api/deepl_spec.rb +189 -0
  25. data/spec/fixtures/vcr_cassettes/deepl_glossaries.yml +374 -0
  26. data/spec/fixtures/vcr_cassettes/deepl_languages.yml +3 -1
  27. data/spec/fixtures/vcr_cassettes/deepl_translate.yml +212 -1
  28. data/spec/fixtures/vcr_cassettes/deepl_usage.yml +3 -1
  29. data/spec/fixtures/vcr_cassettes/glossaries.yml +480 -0
  30. data/spec/fixtures/vcr_cassettes/languages.yml +9 -3
  31. data/spec/fixtures/vcr_cassettes/translate_texts.yml +101 -44
  32. data/spec/fixtures/vcr_cassettes/usage.yml +3 -1
  33. data/spec/requests/glossary/create_spec.rb +55 -0
  34. data/spec/requests/glossary/destroy_spec.rb +50 -0
  35. data/spec/requests/glossary/entries_spec.rb +48 -0
  36. data/spec/requests/glossary/find_spec.rb +54 -0
  37. data/spec/requests/glossary/language_pairs_spec.rb +30 -0
  38. data/spec/requests/glossary/list_spec.rb +44 -0
  39. data/spec/requests/translate_spec.rb +74 -2
  40. data/spec/resources/glossary_spec.rb +35 -0
  41. data/spec/resources/language_pair_spec.rb +20 -0
  42. data/spec/resources/language_spec.rb +23 -1
  43. data/spec/spec_helper.rb +3 -3
  44. metadata +24 -3
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe DeepL::Resources::Glossary do
6
+ subject do
7
+ described_class.new({
8
+ 'glossary_id' => 'def3a26b-3e84-45b3-84ae-0c0aaf3525f7',
9
+ 'name' => 'Mein Glossar',
10
+ 'ready' => true,
11
+ 'source_lang' => 'EN',
12
+ 'target_lang' => 'DE',
13
+ 'creation_time' => '2021-08-03T14:16:18.329Z',
14
+ 'entry_count' => 1
15
+ }, nil, nil)
16
+ end
17
+
18
+ describe '#initialize' do
19
+ context 'When building a basic object' do
20
+ it 'should create a resource' do
21
+ expect(subject).to be_a(described_class)
22
+ end
23
+
24
+ it 'should assign the attributes' do
25
+ expect(subject.id).to eq('def3a26b-3e84-45b3-84ae-0c0aaf3525f7')
26
+ expect(subject.name).to eq('Mein Glossar')
27
+ expect(subject.ready).to eq(true)
28
+ expect(subject.source_lang).to eq('EN')
29
+ expect(subject.target_lang).to eq('DE')
30
+ expect(subject.creation_time).to eq('2021-08-03T14:16:18.329Z')
31
+ expect(subject.entry_count).to eq(1)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe DeepL::Resources::LanguagePair do
6
+ subject { described_class.new('en', 'de', nil, nil) }
7
+
8
+ describe '#initialize' do
9
+ context 'When building a basic object' do
10
+ it 'should create a resource' do
11
+ expect(subject).to be_a(described_class)
12
+ end
13
+
14
+ it 'should assign the attributes' do
15
+ expect(subject.source_lang).to eq('en')
16
+ expect(subject.target_lang).to eq('de')
17
+ end
18
+ end
19
+ end
20
+ end
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe DeepL::Resources::Language do
6
- subject { described_class.new('EN', 'English', nil, nil) }
6
+ subject { described_class.new('EN', 'English', nil, nil, nil) }
7
7
 
8
8
  describe '#initialize' do
9
9
  context 'When building a basic object' do
@@ -15,6 +15,28 @@ describe DeepL::Resources::Language do
15
15
  expect(subject.code).to eq('EN')
16
16
  expect(subject.name).to eq('English')
17
17
  end
18
+
19
+ it 'should not define the supports formality method' do
20
+ expect { subject.supports_formality? }.to raise_error(DeepL::Exceptions::NotSupported)
21
+ end
22
+ end
23
+
24
+ context 'when building a target language object' do
25
+ subject { described_class.new('EN', 'English', true, nil, nil) }
26
+
27
+ it 'should create a resource' do
28
+ expect(subject).to be_a(described_class)
29
+ end
30
+
31
+ it 'should assign the attributes' do
32
+ expect(subject.code).to eq('EN')
33
+ expect(subject.name).to eq('English')
34
+ end
35
+
36
+ it 'should include the supports formality method' do
37
+ expect { subject.supports_formality? }.not_to raise_error
38
+ expect(subject.supports_formality?).to be_truthy
39
+ end
18
40
  end
19
41
  end
20
42
  end
data/spec/spec_helper.rb CHANGED
@@ -18,10 +18,10 @@ require 'vcr'
18
18
  VCR.configure do |config|
19
19
  config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
20
20
  config.hook_into :webmock
21
- config.filter_sensitive_data('VALID_TOKEN') { ENV['DEEPL_AUTH_KEY'] }
21
+ config.filter_sensitive_data('VALID_TOKEN') { ENV.fetch('DEEPL_AUTH_KEY', nil) }
22
22
  config.default_cassette_options = {
23
- record: :new_episodes,
24
- match_requests_on: %i[method uri body]
23
+ # record: :new_episodes,
24
+ match_requests_on: %i[method uri body headers]
25
25
  }
26
26
  end
27
27
 
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: 2.3.1
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Herzog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
11
+ date: 2022-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: juwelier
@@ -62,28 +62,49 @@ files:
62
62
  - lib/deepl/exceptions/bad_request.rb
63
63
  - lib/deepl/exceptions/error.rb
64
64
  - lib/deepl/exceptions/limit_exceeded.rb
65
+ - lib/deepl/exceptions/not_found.rb
66
+ - lib/deepl/exceptions/not_supported.rb
65
67
  - lib/deepl/exceptions/quota_exceeded.rb
66
68
  - lib/deepl/exceptions/request_error.rb
69
+ - lib/deepl/glossary_api.rb
67
70
  - lib/deepl/requests/base.rb
71
+ - lib/deepl/requests/glossary/create.rb
72
+ - lib/deepl/requests/glossary/destroy.rb
73
+ - lib/deepl/requests/glossary/entries.rb
74
+ - lib/deepl/requests/glossary/find.rb
75
+ - lib/deepl/requests/glossary/language_pairs.rb
76
+ - lib/deepl/requests/glossary/list.rb
68
77
  - lib/deepl/requests/languages.rb
69
78
  - lib/deepl/requests/translate.rb
70
79
  - lib/deepl/requests/usage.rb
71
80
  - lib/deepl/resources/base.rb
81
+ - lib/deepl/resources/glossary.rb
72
82
  - lib/deepl/resources/language.rb
83
+ - lib/deepl/resources/language_pair.rb
73
84
  - lib/deepl/resources/text.rb
74
85
  - lib/deepl/resources/usage.rb
75
86
  - spec/api/api_spec.rb
76
87
  - spec/api/configuration_spec.rb
77
88
  - spec/api/deepl_spec.rb
89
+ - spec/fixtures/vcr_cassettes/deepl_glossaries.yml
78
90
  - spec/fixtures/vcr_cassettes/deepl_languages.yml
79
91
  - spec/fixtures/vcr_cassettes/deepl_translate.yml
80
92
  - spec/fixtures/vcr_cassettes/deepl_usage.yml
93
+ - spec/fixtures/vcr_cassettes/glossaries.yml
81
94
  - spec/fixtures/vcr_cassettes/languages.yml
82
95
  - spec/fixtures/vcr_cassettes/translate_texts.yml
83
96
  - spec/fixtures/vcr_cassettes/usage.yml
97
+ - spec/requests/glossary/create_spec.rb
98
+ - spec/requests/glossary/destroy_spec.rb
99
+ - spec/requests/glossary/entries_spec.rb
100
+ - spec/requests/glossary/find_spec.rb
101
+ - spec/requests/glossary/language_pairs_spec.rb
102
+ - spec/requests/glossary/list_spec.rb
84
103
  - spec/requests/languages_spec.rb
85
104
  - spec/requests/translate_spec.rb
86
105
  - spec/requests/usage_spec.rb
106
+ - spec/resources/glossary_spec.rb
107
+ - spec/resources/language_pair_spec.rb
87
108
  - spec/resources/language_spec.rb
88
109
  - spec/resources/text_spec.rb
89
110
  - spec/resources/usage_spec.rb
@@ -107,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
128
  - !ruby/object:Gem::Version
108
129
  version: '0'
109
130
  requirements: []
110
- rubygems_version: 3.1.2
131
+ rubygems_version: 3.3.7
111
132
  signing_key:
112
133
  specification_version: 4
113
134
  summary: A simple ruby wrapper for the DeepL API