deepl-rb 3.9.0 → 3.10.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.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +70 -52
  3. data/.rubocop.yml +26 -0
  4. data/CHANGELOG.md +429 -18
  5. data/Gemfile +4 -0
  6. data/README.md +981 -223
  7. data/Rakefile +18 -5
  8. data/VERSION +1 -1
  9. data/deepl-rb.gemspec +6 -6
  10. data/lib/deepl/admin_client.rb +183 -0
  11. data/lib/deepl/api.rb +30 -6
  12. data/lib/deepl/app_info.rb +20 -0
  13. data/lib/deepl/client.rb +969 -0
  14. data/lib/deepl/configuration.rb +56 -10
  15. data/lib/deepl/constants/admin_usage_group_by.rb +13 -0
  16. data/lib/deepl/constants/custom_tag_usage_aggregate_by.rb +13 -0
  17. data/lib/deepl/constants/document_status_code.rb +17 -0
  18. data/lib/deepl/constants/language_include.rb +17 -0
  19. data/lib/deepl/constants/language_resource_name.rb +21 -0
  20. data/lib/deepl/constants/tag_handling_version.rb +14 -0
  21. data/lib/deepl/deprecation.rb +42 -0
  22. data/lib/deepl/document_api.rb +41 -22
  23. data/lib/deepl/exceptions/bad_request.rb +1 -3
  24. data/lib/deepl/exceptions/connection_error.rb +37 -0
  25. data/lib/deepl/exceptions/document_not_ready_error.rb +17 -0
  26. data/lib/deepl/exceptions/document_translation_error.rb +17 -1
  27. data/lib/deepl/exceptions/error.rb +13 -1
  28. data/lib/deepl/exceptions/not_found.rb +8 -3
  29. data/lib/deepl/exceptions/not_supported.rb +6 -0
  30. data/lib/deepl/exceptions/request_error.rb +19 -2
  31. data/lib/deepl/exceptions/server_error.rb +7 -1
  32. data/lib/deepl/exceptions/validation_error.rb +14 -0
  33. data/lib/deepl/requests/admin/base.rb +94 -0
  34. data/lib/deepl/requests/admin/create_developer_key.rb +38 -0
  35. data/lib/deepl/requests/admin/custom_tag_usage_analytics.rb +38 -0
  36. data/lib/deepl/requests/admin/list_developer_keys.rb +28 -0
  37. data/lib/deepl/requests/admin/update_developer_key.rb +35 -0
  38. data/lib/deepl/requests/admin/usage_analytics.rb +36 -0
  39. data/lib/deepl/requests/base.rb +229 -59
  40. data/lib/deepl/requests/correct.rb +57 -0
  41. data/lib/deepl/requests/document/download.rb +11 -3
  42. data/lib/deepl/requests/document/get_status.rb +2 -2
  43. data/lib/deepl/requests/document/upload.rb +43 -10
  44. data/lib/deepl/requests/glossary/create.rb +6 -2
  45. data/lib/deepl/requests/glossary/language_pairs.rb +20 -4
  46. data/lib/deepl/requests/language_resources.rb +41 -0
  47. data/lib/deepl/requests/languages.rb +28 -4
  48. data/lib/deepl/requests/languages_for_resource.rb +54 -0
  49. data/lib/deepl/requests/multilingual_glossary/create.rb +37 -0
  50. data/lib/deepl/requests/multilingual_glossary/destroy.rb +36 -0
  51. data/lib/deepl/requests/multilingual_glossary/destroy_dictionary.rb +51 -0
  52. data/lib/deepl/requests/multilingual_glossary/entries.rb +66 -0
  53. data/lib/deepl/requests/multilingual_glossary/find.rb +35 -0
  54. data/lib/deepl/requests/multilingual_glossary/helpers.rb +63 -0
  55. data/lib/deepl/requests/multilingual_glossary/list.rb +39 -0
  56. data/lib/deepl/requests/multilingual_glossary/replace_dictionary.rb +41 -0
  57. data/lib/deepl/requests/multilingual_glossary/update.rb +40 -0
  58. data/lib/deepl/requests/rephrase.rb +5 -9
  59. data/lib/deepl/requests/spoken_terms/create.rb +37 -0
  60. data/lib/deepl/requests/spoken_terms/destroy.rb +36 -0
  61. data/lib/deepl/requests/spoken_terms/destroy_term_list.rb +41 -0
  62. data/lib/deepl/requests/spoken_terms/entries.rb +46 -0
  63. data/lib/deepl/requests/spoken_terms/find.rb +35 -0
  64. data/lib/deepl/requests/spoken_terms/helpers.rb +67 -0
  65. data/lib/deepl/requests/spoken_terms/list.rb +35 -0
  66. data/lib/deepl/requests/spoken_terms/replace_term_list.rb +41 -0
  67. data/lib/deepl/requests/spoken_terms/update.rb +40 -0
  68. data/lib/deepl/requests/style_profile/base.rb +83 -0
  69. data/lib/deepl/requests/style_profile/create.rb +35 -0
  70. data/lib/deepl/requests/style_profile/destroy.rb +34 -0
  71. data/lib/deepl/requests/style_profile/find.rb +33 -0
  72. data/lib/deepl/requests/style_profile/list.rb +43 -0
  73. data/lib/deepl/requests/style_profile/update.rb +35 -0
  74. data/lib/deepl/requests/style_rule/create.rb +1 -1
  75. data/lib/deepl/requests/style_rule/create_custom_instruction.rb +4 -2
  76. data/lib/deepl/requests/style_rule/destroy.rb +4 -2
  77. data/lib/deepl/requests/style_rule/destroy_custom_instruction.rb +5 -3
  78. data/lib/deepl/requests/style_rule/find.rb +4 -2
  79. data/lib/deepl/requests/style_rule/find_custom_instruction.rb +5 -3
  80. data/lib/deepl/requests/style_rule/helpers.rb +35 -0
  81. data/lib/deepl/requests/style_rule/list.rb +1 -1
  82. data/lib/deepl/requests/style_rule/update.rb +4 -2
  83. data/lib/deepl/requests/style_rule/update_configured_rules.rb +4 -2
  84. data/lib/deepl/requests/style_rule/update_custom_instruction.rb +5 -3
  85. data/lib/deepl/requests/translate.rb +52 -20
  86. data/lib/deepl/requests/translation_memory/base.rb +1 -4
  87. data/lib/deepl/requests/translation_memory/create_export.rb +1 -1
  88. data/lib/deepl/requests/translation_memory/create_import.rb +1 -1
  89. data/lib/deepl/requests/translation_memory/destroy.rb +1 -1
  90. data/lib/deepl/requests/translation_memory/download_export.rb +4 -0
  91. data/lib/deepl/requests/translation_memory/find.rb +1 -1
  92. data/lib/deepl/requests/translation_memory/find_job.rb +1 -1
  93. data/lib/deepl/requests/translation_memory/list.rb +2 -1
  94. data/lib/deepl/requests/translation_memory/segments.rb +3 -2
  95. data/lib/deepl/requests/translation_memory/storage_base.rb +40 -8
  96. data/lib/deepl/requests/translation_memory/upload_file.rb +1 -1
  97. data/lib/deepl/requests/usage.rb +28 -1
  98. data/lib/deepl/requests/write_improvements.rb +35 -0
  99. data/lib/deepl/resources/admin_usage_report.rb +73 -0
  100. data/lib/deepl/resources/custom_tag_usage_report.rb +59 -0
  101. data/lib/deepl/resources/developer_key.rb +57 -0
  102. data/lib/deepl/resources/document_handle.rb +24 -25
  103. data/lib/deepl/resources/document_translation_status.rb +23 -4
  104. data/lib/deepl/resources/language.rb +10 -2
  105. data/lib/deepl/resources/language_resource.rb +57 -0
  106. data/lib/deepl/resources/language_support.rb +56 -0
  107. data/lib/deepl/resources/multilingual_glossary.rb +112 -0
  108. data/lib/deepl/resources/spoken_terms.rb +61 -0
  109. data/lib/deepl/resources/style_profile.rb +44 -0
  110. data/lib/deepl/resources/style_rule.rb +3 -0
  111. data/lib/deepl/resources/text.rb +18 -2
  112. data/lib/deepl/resources/translation_memory.rb +8 -2
  113. data/lib/deepl/resources/translation_memory_import.rb +1 -1
  114. data/lib/deepl/resources/translation_memory_job.rb +23 -3
  115. data/lib/deepl/resources/translation_memory_segments.rb +8 -6
  116. data/lib/deepl/resources/usage.rb +93 -4
  117. data/lib/deepl/style_rule_api.rb +11 -0
  118. data/lib/deepl/translation_memory_api.rb +104 -24
  119. data/lib/deepl/utils/client_builder.rb +54 -0
  120. data/lib/deepl/utils/document_poller.rb +70 -0
  121. data/lib/deepl/utils/exception_builder.rb +3 -2
  122. data/lib/deepl/utils/http_client_builder.rb +79 -0
  123. data/lib/deepl/utils/number_parser.rb +34 -0
  124. data/lib/deepl/utils/term_validator.rb +33 -0
  125. data/lib/deepl/utils/time_parser.rb +14 -0
  126. data/lib/deepl.rb +166 -41
  127. data/lib/http_client_options.rb +21 -1
  128. data/lib/version.rb +1 -1
  129. data/spec/fixtures.rb +33 -0
  130. data/spec/offline/admin_client_spec.rb +551 -0
  131. data/spec/offline/client_spec.rb +273 -0
  132. data/spec/{api → offline}/configuration_spec.rb +45 -3
  133. data/spec/{constants → offline}/constants_spec.rb +23 -1
  134. data/spec/offline/correct_text_spec.rb +50 -0
  135. data/spec/offline/deprecation_spec.rb +32 -0
  136. data/spec/offline/errors_spec.rb +92 -0
  137. data/spec/offline/glossaries_spec.rb +98 -0
  138. data/spec/offline/http_client_spec.rb +319 -0
  139. data/spec/offline/languages_spec.rb +155 -0
  140. data/spec/offline/module_methods_spec.rb +13 -0
  141. data/spec/offline/multilingual_glossaries_spec.rb +358 -0
  142. data/spec/offline/offline_helper.rb +71 -0
  143. data/spec/offline/rephrase_text_spec.rb +73 -0
  144. data/spec/offline/spoken_terms_spec.rb +215 -0
  145. data/spec/offline/style_profiles_spec.rb +266 -0
  146. data/spec/offline/style_rules_spec.rb +318 -0
  147. data/spec/offline/translate_document_spec.rb +606 -0
  148. data/spec/offline/translate_text_spec.rb +286 -0
  149. data/spec/offline/translation_memories_client_spec.rb +256 -0
  150. data/spec/offline/translation_memories_spec.rb +463 -0
  151. data/spec/offline/usage_spec.rb +151 -0
  152. data/spec/real_api/admin_client_spec.rb +77 -0
  153. data/spec/real_api/correct_text_spec.rb +20 -0
  154. data/spec/real_api/glossaries_spec.rb +28 -0
  155. data/spec/real_api/languages_spec.rb +27 -0
  156. data/spec/real_api/multilingual_glossaries_spec.rb +53 -0
  157. data/spec/real_api/proxy_spec.rb +41 -0
  158. data/spec/real_api/real_api_helper.rb +65 -0
  159. data/spec/real_api/rephrase_text_spec.rb +16 -0
  160. data/spec/real_api/spoken_terms_spec.rb +56 -0
  161. data/spec/real_api/style_profiles_spec.rb +46 -0
  162. data/spec/real_api/style_rules_spec.rb +46 -0
  163. data/spec/real_api/translate_document_spec.rb +18 -0
  164. data/spec/real_api/translate_text_spec.rb +16 -0
  165. data/spec/real_api/translation_memories_spec.rb +56 -0
  166. data/spec/real_api/usage_spec.rb +20 -0
  167. data/spec/spec_helper.rb +1 -50
  168. metadata +116 -76
  169. data/.circleci/config.yml +0 -27
  170. data/.github/workflows/add_issues_to_kanban.yml +0 -16
  171. data/spec/api/api_spec.rb +0 -20
  172. data/spec/api/deepl_spec.rb +0 -262
  173. data/spec/integration_tests/document_api_spec.rb +0 -211
  174. data/spec/integration_tests/document_error_paths_spec.rb +0 -33
  175. data/spec/integration_tests/glossary_api_spec.rb +0 -114
  176. data/spec/integration_tests/glossary_error_paths_spec.rb +0 -107
  177. data/spec/integration_tests/integration_test_utils.rb +0 -178
  178. data/spec/integration_tests/languages_api_spec.rb +0 -54
  179. data/spec/integration_tests/languages_error_paths_spec.rb +0 -25
  180. data/spec/integration_tests/rephrase_api_spec.rb +0 -90
  181. data/spec/integration_tests/rephrase_error_paths_spec.rb +0 -53
  182. data/spec/integration_tests/smoke_test_spec.rb +0 -24
  183. data/spec/integration_tests/style_rule_api_spec.rb +0 -117
  184. data/spec/integration_tests/style_rule_error_paths_spec.rb +0 -45
  185. data/spec/integration_tests/translate_api_spec.rb +0 -117
  186. data/spec/integration_tests/translate_error_paths_spec.rb +0 -48
  187. data/spec/integration_tests/translation_memory_api_spec.rb +0 -244
  188. data/spec/integration_tests/translation_memory_error_paths_spec.rb +0 -87
  189. data/spec/integration_tests/usage_api_spec.rb +0 -29
  190. data/spec/integration_tests/usage_error_paths_spec.rb +0 -18
  191. data/spec/requests/document/upload_spec.rb +0 -130
  192. data/spec/requests/extra_body_parameters_types_spec.rb +0 -82
  193. data/spec/requests/glossary/create_spec.rb +0 -44
  194. data/spec/requests/glossary/destroy_spec.rb +0 -27
  195. data/spec/requests/glossary/entries_spec.rb +0 -27
  196. data/spec/requests/glossary/find_spec.rb +0 -28
  197. data/spec/requests/glossary/language_pairs_spec.rb +0 -27
  198. data/spec/requests/glossary/list_spec.rb +0 -27
  199. data/spec/requests/languages_spec.rb +0 -27
  200. data/spec/requests/rephrase_spec.rb +0 -46
  201. data/spec/requests/style_rule/create_custom_instruction_spec.rb +0 -30
  202. data/spec/requests/style_rule/create_spec.rb +0 -29
  203. data/spec/requests/style_rule/destroy_custom_instruction_spec.rb +0 -28
  204. data/spec/requests/style_rule/destroy_spec.rb +0 -27
  205. data/spec/requests/style_rule/find_custom_instruction_spec.rb +0 -29
  206. data/spec/requests/style_rule/find_spec.rb +0 -28
  207. data/spec/requests/style_rule/list_spec.rb +0 -27
  208. data/spec/requests/style_rule/update_configured_rules_spec.rb +0 -31
  209. data/spec/requests/style_rule/update_custom_instruction_spec.rb +0 -32
  210. data/spec/requests/style_rule/update_spec.rb +0 -29
  211. data/spec/requests/translate_spec.rb +0 -338
  212. data/spec/requests/translation_memory/create_export_spec.rb +0 -37
  213. data/spec/requests/translation_memory/create_import_spec.rb +0 -61
  214. data/spec/requests/translation_memory/destroy_spec.rb +0 -36
  215. data/spec/requests/translation_memory/download_export_spec.rb +0 -54
  216. data/spec/requests/translation_memory/find_job_spec.rb +0 -37
  217. data/spec/requests/translation_memory/find_spec.rb +0 -36
  218. data/spec/requests/translation_memory/list_spec.rb +0 -27
  219. data/spec/requests/translation_memory/segments_spec.rb +0 -58
  220. data/spec/requests/translation_memory/upload_file_spec.rb +0 -55
  221. data/spec/requests/usage_spec.rb +0 -27
  222. data/spec/resources/custom_instruction_spec.rb +0 -32
  223. data/spec/resources/glossary_spec.rb +0 -38
  224. data/spec/resources/language_pair_spec.rb +0 -23
  225. data/spec/resources/language_spec.rb +0 -45
  226. data/spec/resources/style_rule_spec.rb +0 -68
  227. data/spec/resources/text_spec.rb +0 -23
  228. data/spec/resources/translation_memory_export_spec.rb +0 -38
  229. data/spec/resources/translation_memory_import_spec.rb +0 -30
  230. data/spec/resources/translation_memory_job_spec.rb +0 -109
  231. data/spec/resources/translation_memory_segments_spec.rb +0 -78
  232. data/spec/resources/translation_memory_spec.rb +0 -52
  233. data/spec/resources/usage_spec.rb +0 -35
  234. data/spec/support/live_mock_server.rb +0 -12
  235. data/spec/support/managed_glossary.rb +0 -65
  236. data/spec/support/managed_style_rule.rb +0 -17
  237. data/spec/support/managed_translation_memory.rb +0 -55
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35f6c08b68a4b9aa8907b543ebbfbab38e9f9f35f7e2dc60decaa4bac57340f5
4
- data.tar.gz: 975d1d68cd43fec41b93252b609bc67a619d08d4fd2e6d6bc9b822ca01fd78ac
3
+ metadata.gz: 55285686ffe869d89ccd6e47ad9f205d7877e70322de92a3a2a1c7abd9ccfd19
4
+ data.tar.gz: 8db6f78d464b9d5297e1f85003d7922aff67e46514461ede9394dce077972aea
5
5
  SHA512:
6
- metadata.gz: 749cd28143798f5e08ba848bc4eaa476254ef24656e690fcb3e5ca84314eb54f68ffc7f3675ae74a0cc24c01d194d9dfebcd2d819e0982fad44aba5869e37344
7
- data.tar.gz: 4a3b7ca19832725c49b0708f544f9842de7733cc8777b41f66835e4dbead815994ca6dab8b8b3052d172417240dcf5fff5934fc3959ef226001e8ad4e0769735
6
+ metadata.gz: 78ae4eb854f61524d3b1c88ab057ce0947706c0b88a413605bd5a85cabf923a26c3b08874654fcb165294acf9635b6038228aca355c653be2cf572d70d844670
7
+ data.tar.gz: d36d518ff006bfd930aee06881768b7d105f5ac55d2c7d43ca1d8d0bd1c9f3044de0d61589e66e7b40baf603a87fdbb7dcba9c46d7b22380e806f402715b0c95
data/.gitlab-ci.yml CHANGED
@@ -8,14 +8,18 @@ include:
8
8
  file:
9
9
  - '/templates/.buildkit.yml'
10
10
  - '/templates/.secret-detection.yml'
11
- - '/templates/.gitlab-release.yml'
12
11
 
13
12
  # Global --------------------------
14
13
 
15
14
  workflow:
16
15
  rules:
17
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
16
+ # The tag pipeline must run: that is where the registry publish job fires.
18
17
  - if: $CI_COMMIT_TAG
18
+ # The release commit carries only the version and the changelog, both
19
+ # derived from commits that were already checked on the way in.
20
+ - if: $CI_COMMIT_MESSAGE =~ /^chore\(release\):/
21
+ when: never
22
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
19
23
  - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
20
24
 
21
25
  variables:
@@ -25,7 +29,7 @@ stages:
25
29
  - install
26
30
  - check
27
31
  - test
28
- - publish # Only for internal tracking
32
+ - publish
29
33
 
30
34
 
31
35
  before_script:
@@ -115,65 +119,79 @@ semgrep-sast:
115
119
 
116
120
  # stage: test ----------------------
117
121
 
118
- .test_base:
119
- stage: test
120
- extends: .test
121
- variables:
122
- VALIDATE_REQUESTS_FOR_DEEPL_MOCK: '1'
123
- VALIDATE_RESPONSES_FOR_DEEPL_MOCK: '1'
124
- parallel:
125
- matrix:
126
- - DOCKER_IMAGE: 'ruby:2.7'
127
- - DOCKER_IMAGE: 'ruby:3.2'
128
- - DOCKER_IMAGE: 'ruby:3.3'
129
- - DOCKER_IMAGE: 'ruby:2.7'
130
- USE_MOCK_SERVER: "use mock server"
131
- - DOCKER_IMAGE: 'ruby:3.2'
132
- USE_MOCK_SERVER: "use mock server"
133
- - DOCKER_IMAGE: 'ruby:3.3'
134
- USE_MOCK_SERVER: "use mock server"
135
- image:
136
- name: ${DOCKER_IMAGE}
137
- entrypoint: ['/builds/deepl/backend/oss-client-libs/deepl-ruby']
138
- script:
139
- - >
140
- if [[ ! -z "${USE_MOCK_SERVER}" ]]; then
141
- echo "Using mock server"
142
- export DEEPL_SERVER_URL=http://deepl-mock:3000
143
- export DEEPL_MOCK_SERVER_PORT=3000
144
- export DEEPL_PROXY_URL=http://deepl-mock:3001
145
- export DEEPL_MOCK_PROXY_SERVER_PORT=3001
146
- fi
147
- - bundle exec rake test
148
- - bundle exec rspec --format RspecJunitFormatter --out rspec.xml
149
- artifacts:
150
- reports:
151
- coverage_report:
152
- coverage_format: cobertura
153
- path: coverage/coverage.xml
154
- junit:
155
- - rspec.xml
156
- when: always
157
-
158
- test_scheduled:
159
- extends: .test_base
122
+ .test_offline_base:
123
+ stage: test
124
+ parallel:
125
+ matrix:
126
+ - DOCKER_IMAGE: 'ruby:2.7'
127
+ - DOCKER_IMAGE: 'ruby:3.2'
128
+ - DOCKER_IMAGE: 'ruby:3.3'
129
+ image:
130
+ name: ${DOCKER_IMAGE}
131
+ entrypoint: ['/builds/deepl/backend/oss-client-libs/deepl-ruby']
132
+ script:
133
+ - bundle exec rspec spec/offline --format progress --format RspecJunitFormatter --out rspec.xml
134
+ artifacts:
135
+ reports:
136
+ coverage_report:
137
+ coverage_format: cobertura
138
+ path: coverage/coverage.xml
139
+ junit:
140
+ - rspec.xml
141
+ when: always
142
+
143
+ test_offline_scheduled:
144
+ extends: .test_offline_base
160
145
  rules:
161
146
  - if: $CI_PIPELINE_SOURCE == "schedule"
162
147
  retry: 2
163
148
 
164
- test_manual:
149
+ test_offline_manual:
150
+ extends: .test_offline_base
151
+ rules:
152
+ - if: $CI_PIPELINE_SOURCE != "schedule"
153
+
154
+ # Every endpoint once against the real API; no retry, as a retry repeats every request.
155
+ .test_real_api_base:
165
156
  stage: test
166
- extends: .test_base
157
+ extends: .test
158
+ image:
159
+ name: ruby:3.3
160
+ entrypoint: ['/builds/deepl/backend/oss-client-libs/deepl-ruby']
161
+ script:
162
+ - bundle exec rspec spec/real_api --format progress --format RspecJunitFormatter --out rspec.xml
163
+ artifacts:
164
+ reports:
165
+ coverage_report:
166
+ coverage_format: cobertura
167
+ path: coverage/coverage.xml
168
+ junit:
169
+ - rspec.xml
170
+ when: always
171
+
172
+ test_real_api_scheduled:
173
+ extends: .test_real_api_base
174
+ rules:
175
+ - if: $CI_PIPELINE_SOURCE == "schedule"
176
+
177
+ test_real_api_manual:
178
+ extends: .test_real_api_base
167
179
  rules:
168
180
  - if: $CI_PIPELINE_SOURCE != "schedule"
169
181
 
170
182
  # stage: publish ----------------------
171
183
 
172
- gitlab release:
184
+ gem push:
185
+ extends: .publish
173
186
  stage: publish
174
- image: registry.gitlab.com/gitlab-org/release-cli:latest
175
- extends: .create_gitlab_release
176
- before_script:
177
- - echo "overriding default before_script..."
187
+ image:
188
+ name: ruby:3.3
189
+ entrypoint: ['/builds/deepl/backend/oss-client-libs/deepl-ruby']
178
190
  rules:
179
191
  - if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/'
192
+ script:
193
+ # The committed gemspec keeps a hardcoded s.files list. Regenerate it from
194
+ # git ls-files; the version comes from lib/version.rb, written at release.
195
+ - bundle exec rake gemspec
196
+ - gem build deepl-rb.gemspec
197
+ - GEM_HOST_API_KEY="$RUBYGEM_PUBLISH_API_KEY" gem push "deepl-rb-${CI_COMMIT_TAG#v}.gem"
data/.rubocop.yml CHANGED
@@ -21,15 +21,35 @@ Metrics/ParameterLists:
21
21
  Layout/LineLength:
22
22
  Max: 100
23
23
 
24
+ # A real-API example is one flow per resource: each step is one real request.
24
25
  RSpec/ExampleLength:
25
26
  Max: 10
26
27
  CountAsOne: ['heredoc']
28
+ Exclude:
29
+ - 'spec/real_api/**/*'
30
+
31
+ # The suites are named after the SDK resource or operation, not after one class.
32
+ RSpec/DescribeClass:
33
+ inherit_mode:
34
+ merge:
35
+ - Exclude
36
+ Exclude:
37
+ - 'spec/offline/**/*'
38
+ - 'spec/real_api/**/*'
39
+
40
+ # The expectation of an offline example is the declared request: offline_helper.rb fails every
41
+ # example whose declared request the SDK did not send.
42
+ RSpec/NoExpectationExample:
43
+ Exclude:
44
+ - 'spec/offline/**/*'
27
45
 
28
46
  RSpec/MessageSpies:
29
47
  EnforcedStyle: 'receive'
30
48
 
31
49
  RSpec/MultipleExpectations:
32
50
  Max: 8
51
+ Exclude:
52
+ - 'spec/real_api/**/*'
33
53
 
34
54
  RSpec/MultipleMemoizedHelpers:
35
55
  Max: 7
@@ -41,8 +61,14 @@ RSpec/SpecFilePathSuffix:
41
61
  Enabled: false
42
62
 
43
63
  RSpec/SpecFilePathFormat:
64
+ inherit_mode:
65
+ merge:
66
+ - Exclude
44
67
  CustomTransform:
45
68
  DeepL: ''
69
+ Exclude:
70
+ - 'spec/offline/**/*'
71
+ - 'spec/real_api/**/*'
46
72
 
47
73
  Style/Documentation:
48
74
  Enabled: false