ruby-lokalise-api 5.0.0 → 6.2.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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +7 -5
  4. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/base_request.rb +4 -4
  5. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/client.rb +24 -24
  6. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/base.rb +10 -10
  7. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/branch.rb +1 -1
  8. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/contributor.rb +1 -1
  9. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/custom_translation_status.rb +1 -1
  10. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/file.rb +1 -1
  11. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key.rb +2 -2
  12. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key_comment.rb +1 -1
  13. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/order.rb +1 -1
  14. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/payment_card.rb +1 -1
  15. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project.rb +1 -1
  16. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_comment.rb +1 -1
  17. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_language.rb +1 -1
  18. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/queued_process.rb +1 -1
  19. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/screenshot.rb +1 -1
  20. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/segment.rb +1 -1
  21. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/snapshot.rb +1 -1
  22. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/system_language.rb +1 -1
  23. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/task.rb +1 -1
  24. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team.rb +1 -1
  25. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user.rb +1 -1
  26. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user_group.rb +1 -1
  27. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation.rb +1 -1
  28. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation_provider.rb +1 -1
  29. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/webhook.rb +1 -1
  30. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/connection.rb +2 -2
  31. data/lib/ruby_lokalise_api/data/attributes.yml +235 -0
  32. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/error.rb +14 -14
  33. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/json_handler.rb +1 -1
  34. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/oauth2/auth.rb +2 -2
  35. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/oauth2/connection.rb +2 -2
  36. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/oauth2/request.rb +3 -3
  37. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/oauth2_client.rb +1 -1
  38. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/request.rb +3 -3
  39. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/base.rb +16 -8
  40. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/branch.rb +1 -1
  41. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/contributor.rb +1 -1
  42. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/custom_translation_status.rb +1 -1
  43. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/file.rb +2 -2
  44. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key.rb +1 -1
  45. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key_comment.rb +1 -1
  46. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/order.rb +1 -1
  47. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/payment_card.rb +1 -1
  48. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project.rb +1 -1
  49. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_comment.rb +1 -1
  50. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_language.rb +1 -1
  51. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/queued_process.rb +1 -1
  52. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/screenshot.rb +1 -1
  53. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/segment.rb +1 -1
  54. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/snapshot.rb +2 -2
  55. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/system_language.rb +1 -1
  56. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/task.rb +1 -1
  57. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team.rb +1 -1
  58. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user.rb +1 -1
  59. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_billing_details.rb +1 -1
  60. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_group.rb +1 -1
  61. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation.rb +1 -1
  62. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation_provider.rb +1 -1
  63. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/webhook.rb +1 -1
  64. data/lib/ruby_lokalise_api/rest/branches.rb +69 -0
  65. data/lib/ruby_lokalise_api/rest/comments.rb +61 -0
  66. data/lib/ruby_lokalise_api/rest/contributors.rb +58 -0
  67. data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +67 -0
  68. data/lib/ruby_lokalise_api/rest/files.rb +49 -0
  69. data/lib/ruby_lokalise_api/rest/keys.rb +79 -0
  70. data/lib/ruby_lokalise_api/rest/languages.rb +67 -0
  71. data/lib/ruby_lokalise_api/rest/orders.rb +37 -0
  72. data/lib/ruby_lokalise_api/rest/payment_cards.rb +43 -0
  73. data/lib/ruby_lokalise_api/rest/projects.rb +62 -0
  74. data/lib/ruby_lokalise_api/rest/queued_processes.rb +28 -0
  75. data/lib/ruby_lokalise_api/rest/screenshots.rb +58 -0
  76. data/lib/ruby_lokalise_api/rest/segments.rb +45 -0
  77. data/lib/ruby_lokalise_api/rest/snapshots.rb +47 -0
  78. data/lib/ruby_lokalise_api/rest/tasks.rb +58 -0
  79. data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +36 -0
  80. data/lib/ruby_lokalise_api/rest/team_user_groups.rb +109 -0
  81. data/lib/ruby_lokalise_api/rest/team_users.rb +48 -0
  82. data/lib/ruby_lokalise_api/rest/teams.rb +16 -0
  83. data/lib/ruby_lokalise_api/rest/translation_providers.rb +27 -0
  84. data/lib/ruby_lokalise_api/rest/translations.rb +39 -0
  85. data/lib/ruby_lokalise_api/rest/webhooks.rb +69 -0
  86. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/attribute_helpers.rb +7 -7
  87. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/endpoint_helpers.rb +1 -1
  88. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/string_utils.rb +1 -1
  89. data/lib/ruby_lokalise_api/version.rb +5 -0
  90. data/lib/ruby_lokalise_api.rb +50 -0
  91. data/ruby-lokalise-api.gemspec +8 -7
  92. metadata +125 -157
  93. data/lib/ruby-lokalise-api/data/attributes.json +0 -259
  94. data/lib/ruby-lokalise-api/rest/branches.rb +0 -67
  95. data/lib/ruby-lokalise-api/rest/comments.rb +0 -59
  96. data/lib/ruby-lokalise-api/rest/contributors.rb +0 -56
  97. data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +0 -65
  98. data/lib/ruby-lokalise-api/rest/files.rb +0 -36
  99. data/lib/ruby-lokalise-api/rest/keys.rb +0 -77
  100. data/lib/ruby-lokalise-api/rest/languages.rb +0 -65
  101. data/lib/ruby-lokalise-api/rest/orders.rb +0 -35
  102. data/lib/ruby-lokalise-api/rest/payment_cards.rb +0 -41
  103. data/lib/ruby-lokalise-api/rest/projects.rb +0 -60
  104. data/lib/ruby-lokalise-api/rest/queued_processes.rb +0 -26
  105. data/lib/ruby-lokalise-api/rest/screenshots.rb +0 -56
  106. data/lib/ruby-lokalise-api/rest/segments.rb +0 -43
  107. data/lib/ruby-lokalise-api/rest/snapshots.rb +0 -45
  108. data/lib/ruby-lokalise-api/rest/tasks.rb +0 -56
  109. data/lib/ruby-lokalise-api/rest/team_user_billing_details.rb +0 -34
  110. data/lib/ruby-lokalise-api/rest/team_user_group.rb +0 -107
  111. data/lib/ruby-lokalise-api/rest/team_users.rb +0 -46
  112. data/lib/ruby-lokalise-api/rest/teams.rb +0 -14
  113. data/lib/ruby-lokalise-api/rest/translation_providers.rb +0 -25
  114. data/lib/ruby-lokalise-api/rest/translations.rb +0 -37
  115. data/lib/ruby-lokalise-api/rest/webhooks.rb +0 -67
  116. data/lib/ruby-lokalise-api/version.rb +0 -5
  117. data/lib/ruby-lokalise-api.rb +0 -111
  118. data/spec/lib/ruby-lokalise-api/connection_spec.rb +0 -68
  119. data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +0 -81
  120. data/spec/lib/ruby-lokalise-api/error_spec.rb +0 -41
  121. data/spec/lib/ruby-lokalise-api/oauth2/auth_spec.rb +0 -73
  122. data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +0 -140
  123. data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +0 -118
  124. data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +0 -132
  125. data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +0 -131
  126. data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +0 -66
  127. data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +0 -199
  128. data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +0 -134
  129. data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +0 -113
  130. data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +0 -92
  131. data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +0 -150
  132. data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +0 -57
  133. data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +0 -127
  134. data/spec/lib/ruby-lokalise-api/rest/segments_spec.rb +0 -106
  135. data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +0 -117
  136. data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +0 -145
  137. data/spec/lib/ruby-lokalise-api/rest/team_user_billing_details_spec.rb +0 -48
  138. data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +0 -278
  139. data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +0 -95
  140. data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +0 -25
  141. data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +0 -48
  142. data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +0 -118
  143. data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +0 -126
  144. data/spec/lib/ruby-lokalise-api_spec.rb +0 -47
  145. data/spec/spec_helper.rb +0 -22
  146. data/spec/support/test_client.rb +0 -15
  147. data/spec/support/vcr.rb +0 -15
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
-
6
- describe '#files' do
7
- it 'returns all files' do
8
- files = VCR.use_cassette('files') do
9
- test_client.files project_id
10
- end.collection
11
-
12
- file = files.first
13
-
14
- expect(files.count).to eq(1)
15
- expect(file.filename).to eq('__unassigned__')
16
- expect(file.key_count).to eq(1)
17
- end
18
-
19
- it 'supports pagination' do
20
- files = VCR.use_cassette('all_files_pagination') do
21
- test_client.files project_id, limit: 1, page: 1
22
- end
23
-
24
- expect(files.collection.count).to eq(1)
25
- expect(files.total_results).to eq(1)
26
- expect(files.total_pages).to eq(1)
27
- expect(files.results_per_page).to eq(1)
28
- expect(files.current_page).to eq(1)
29
-
30
- expect(files.next_page).to be_nil
31
- expect(files.prev_page).to be_nil
32
- end
33
- end
34
-
35
- specify '#download_files' do
36
- response = VCR.use_cassette('download_files') do
37
- test_client.download_files project_id,
38
- format: 'po',
39
- original_filenames: true
40
- end
41
-
42
- expect(response['project_id']).to eq(project_id)
43
- expect(response['bundle_url']).to include('amazonaws.com')
44
- end
45
-
46
- specify '#upload_file' do
47
- process = VCR.use_cassette('upload_file') do
48
- test_client.upload_file project_id,
49
- data: 'ZnI6DQogIHRlc3Q6IHRyYW5zbGF0aW9u',
50
- filename: 'rspec_async.yml',
51
- lang_iso: 'ru'
52
- end
53
-
54
- expect(process).to be_an_instance_of(Lokalise::Resources::QueuedProcess)
55
- expect(process.process_id).to eq('85c42bf5eff44648ca2f01f9db67b7d306a2f282')
56
- expect(process.status).to eq('queued')
57
-
58
- reloaded_process = VCR.use_cassette('upload_file_queued_reload') do
59
- process.reload_data
60
- end
61
-
62
- expect(reloaded_process.process_id).to eq(process.process_id)
63
- expect(reloaded_process.status).to eq('finished')
64
- expect(reloaded_process.details['files'][0]['status']).to eq('finished')
65
- end
66
- end
@@ -1,199 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:key_id) { 15_305_182 }
6
- let(:new_key_id) { 15_519_770 }
7
-
8
- describe '#keys' do
9
- it 'returns all keys' do
10
- keys = VCR.use_cassette('all_keys') do
11
- test_client.keys project_id
12
- end.collection
13
-
14
- expect(keys.count).to eq(8)
15
- end
16
-
17
- it 'supports pagination' do
18
- keys = VCR.use_cassette('all_keys_pagination') do
19
- test_client.keys project_id, limit: 2, page: 3
20
- end
21
-
22
- expect(keys.collection.count).to eq(2)
23
- expect(keys.total_results).to eq(8)
24
- expect(keys.total_pages).to eq(4)
25
- expect(keys.results_per_page).to eq(2)
26
- expect(keys.current_page).to eq(3)
27
-
28
- expect(keys.next_page?).to eq(true)
29
- expect(keys.last_page?).to eq(false)
30
- expect(keys.prev_page?).to eq(true)
31
- expect(keys.first_page?).to eq(false)
32
- end
33
- end
34
-
35
- specify '#key' do
36
- key = VCR.use_cassette('key') do
37
- test_client.key project_id, 44_596_066, disable_references: 0
38
- end
39
-
40
- expect(key.key_id).to eq(44_596_066)
41
- expect(key.project_id).to eq(project_id)
42
- expect(key.branch).to eq('master')
43
- expect(key.created_at).to eq('2020-05-11 11:20:33 (Etc/UTC)')
44
- expect(key.created_at_timestamp).to eq(1_589_196_033)
45
- expect(key.key_name['ios']).to eq('static_pages:index:welcome')
46
- expect(key.filenames['web']).to eq('%LANG_ISO%.yml')
47
- expect(key.description).to eq('')
48
- expect(key.platforms).to eq(%w[web])
49
- expect(key.tags).to eq([])
50
- expect(key.comments).to eq([])
51
- expect(key.screenshots).to eq([])
52
- expect(key.translations.first['modified_by_email']).to eq('bodrovis@protonmail.com')
53
- expect(key.is_plural).to eq(false)
54
- expect(key.plural_name).to eq('')
55
- expect(key.is_hidden).to eq(true)
56
- expect(key.is_archived).to eq(false)
57
- expect(key.context).to eq('')
58
- expect(key.base_words).to eq(1)
59
- expect(key.char_limit).to eq(0)
60
- expect(key.custom_attributes).to eq('')
61
- expect(key.modified_at).to eq('2020-05-11 11:20:33 (Etc/UTC)')
62
- expect(key.modified_at_timestamp).to eq(1_589_196_033)
63
- expect(key.translations_modified_at).to eq('2020-05-15 10:44:42 (Etc/UTC)')
64
- expect(key.translations_modified_at_timestamp).to eq(1_589_539_482)
65
- end
66
-
67
- specify '#reload_data' do
68
- key = VCR.use_cassette('key') do
69
- test_client.key project_id, 44_596_066, disable_references: 0
70
- end
71
-
72
- reloaded_key = VCR.use_cassette('key') do
73
- key.reload_data disable_references: 0
74
- end
75
-
76
- expect(reloaded_key.key_id).to eq(key.key_id)
77
- end
78
-
79
- specify '#create_keys' do
80
- keys = VCR.use_cassette('create_keys') do
81
- test_client.create_keys project_id, key_name: 'rspec_k', platforms: %w[ios]
82
- end
83
-
84
- key = keys.collection.first
85
-
86
- expect(keys.project_id).to eq(project_id)
87
- expect(key.key_name['ios']).to eq('rspec_k')
88
- expect(key.platforms).to eq(%w[ios])
89
- end
90
-
91
- specify '#update_key' do
92
- key = VCR.use_cassette('update_key') do
93
- test_client.update_key project_id, new_key_id, key_name: 'updated_rspec_k', description: 'desc here'
94
- end
95
-
96
- expect(key.key_name['ios']).to eq('updated_rspec_k')
97
- expect(key.platforms).to eq(%w[ios])
98
- expect(key.description).to eq('desc here')
99
- end
100
-
101
- specify '#update_keys' do
102
- keys = VCR.use_cassette('update_keys') do
103
- test_client.update_keys project_id, [
104
- {
105
- key_id: new_key_id,
106
- description: 'bulk updated'
107
- },
108
- {
109
- key_id: key_id,
110
- tags: %w[bulk upd]
111
- }
112
- ]
113
- end
114
-
115
- # `update_keys` returns a collection but it should not be paginated
116
- expect(keys.next_page?).to eq(false)
117
- expect(keys.prev_page?).to eq(false)
118
-
119
- first_key = keys.collection.first
120
- second_key = keys.collection[1]
121
-
122
- expect(first_key.key_id).to eq(key_id)
123
- expect(first_key.key_name['ios']).to eq('test')
124
- expect(first_key.tags).to eq(%w[bulk upd])
125
-
126
- expect(second_key.key_id).to eq(new_key_id)
127
- expect(second_key.key_name['web']).to eq('updated_rspec_k')
128
- expect(second_key.description).to eq('bulk updated')
129
- end
130
-
131
- specify '#destroy_key' do
132
- response = VCR.use_cassette('delete_key') do
133
- test_client.destroy_key project_id, '15519771'
134
- end
135
-
136
- expect(response['project_id']).to eq(project_id)
137
- expect(response['key_removed']).to eq(true)
138
- end
139
-
140
- specify '#destroy_keys' do
141
- response = VCR.use_cassette('delete_keys') do
142
- test_client.destroy_keys project_id, [new_key_id, key_id]
143
- end
144
-
145
- expect(response['project_id']).to eq(project_id)
146
- expect(response['keys_removed']).to eq(true)
147
- end
148
-
149
- context 'when key methods are chained' do
150
- it 'supports update and destroy' do
151
- key = VCR.use_cassette('create_another_key') do
152
- test_client.create_keys project_id, key_name: 'chained_k', platforms: %w[ios]
153
- end.collection.first
154
-
155
- expect(key.key_name['ios']).to eq('chained_k')
156
-
157
- path = key.path
158
-
159
- updated_key = VCR.use_cassette('update_key_chained') do
160
- key.update key_name: 'updated!'
161
- end
162
-
163
- expect(updated_key.client.token).to eq(test_client.token)
164
- expect(updated_key.key_name['ios']).to eq('updated!')
165
- expect(updated_key.path).to eq(path)
166
-
167
- delete_response = VCR.use_cassette('delete_key_chained') do
168
- updated_key.destroy
169
- end
170
-
171
- expect(delete_response['project_id']).to eq(project_id)
172
- expect(delete_response['key_removed']).to eq(true)
173
- end
174
- end
175
-
176
- context 'when keys collection methods are chained' do
177
- it 'supports destroy_all' do
178
- keys = VCR.use_cassette('create_keys_collection') do
179
- test_client.create_keys project_id, [
180
- {
181
- key_name: 'key_collect1', platforms: %w[ios]
182
- },
183
- {
184
- key_name: 'key_collect2', platforms: %w[ios]
185
- }
186
- ]
187
- end
188
-
189
- expect(keys.collection.length).to eq(2)
190
-
191
- delete_response = VCR.use_cassette('delete_all_keys_chained') do
192
- keys.destroy_all
193
- end
194
-
195
- expect(delete_response['project_id']).to eq(project_id)
196
- expect(delete_response['keys_removed']).to eq(true)
197
- end
198
- end
199
- end
@@ -1,134 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:language_id) { 640 }
6
- let(:new_language_id) { 894 }
7
-
8
- describe '#system_languages' do
9
- it 'returns all system languages' do
10
- languages = VCR.use_cassette('all_system_languages') do
11
- test_client.system_languages
12
- end.collection
13
-
14
- expect(languages.count).to eq(100)
15
- expect(languages.first.lang_iso).to eq('ab')
16
- end
17
-
18
- it 'supports pagination' do
19
- languages = VCR.use_cassette('all_system_languages_pagination') do
20
- test_client.system_languages limit: 10, page: 3
21
- end
22
-
23
- expect(languages.collection.count).to eq(10)
24
- expect(languages.total_results).to eq(618)
25
- expect(languages.total_pages).to eq(62)
26
- expect(languages.results_per_page).to eq(10)
27
- expect(languages.current_page).to eq(3)
28
- end
29
- end
30
-
31
- describe '#project_languages' do
32
- it 'returns all project languages' do
33
- languages = VCR.use_cassette('all_project_languages') do
34
- test_client.project_languages project_id
35
- end.collection
36
-
37
- expect(languages.count).to eq(3)
38
- expect(languages.first.lang_iso).to eq('en')
39
- end
40
-
41
- it 'supports pagination' do
42
- languages = VCR.use_cassette('all_project_languages_pagination') do
43
- test_client.project_languages project_id, limit: 1, page: 2
44
- end
45
-
46
- expect(languages.collection.count).to eq(1)
47
- expect(languages.total_results).to eq(3)
48
- expect(languages.total_pages).to eq(3)
49
- expect(languages.results_per_page).to eq(1)
50
- expect(languages.current_page).to eq(2)
51
- end
52
- end
53
-
54
- specify '#language' do
55
- language = VCR.use_cassette('language') do
56
- test_client.language project_id, language_id
57
- end
58
-
59
- expect(language.lang_id).to eq(language_id)
60
- expect(language.lang_iso).to eq('en')
61
- expect(language.lang_name).to eq('English')
62
- expect(language.is_rtl).to eq(false)
63
- expect(language.plural_forms).to eq(%w[one other])
64
- end
65
-
66
- specify '#reload_data' do
67
- language = VCR.use_cassette('language') do
68
- test_client.language project_id, language_id
69
- end
70
-
71
- reloaded_language = VCR.use_cassette('language') do
72
- language.reload_data
73
- end
74
-
75
- expect(reloaded_language.lang_id).to eq(language.lang_id)
76
- end
77
-
78
- specify '#create_languages' do
79
- language = VCR.use_cassette('create_languages') do
80
- test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'rspec lang'
81
- end.collection.first
82
-
83
- expect(language.lang_name).to eq('rspec lang')
84
- expect(language.lang_iso).to eq('ab')
85
- end
86
-
87
- specify '#update_language' do
88
- language = VCR.use_cassette('update_language') do
89
- test_client.update_language project_id, new_language_id, lang_name: 'updated lang',
90
- plural_forms: %w[one]
91
- end
92
-
93
- expect(language.lang_name).to eq('updated lang')
94
- expect(language.lang_iso).to eq('ab')
95
- expect(language.plural_forms).to eq(%w[one])
96
- end
97
-
98
- specify '#destroy_language' do
99
- response = VCR.use_cassette('delete_language') do
100
- test_client.destroy_language project_id, new_language_id
101
- end
102
- expect(response['project_id']).to eq(project_id)
103
- expect(response['language_deleted']).to eq(true)
104
- end
105
-
106
- context 'when project language methods are chained' do
107
- it 'supports update and destroy' do
108
- language = VCR.use_cassette('create_another_language') do
109
- test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'chained lang'
110
- end.collection.first
111
-
112
- expect(language.client.token).to eq(test_client.token)
113
- expect(language.lang_name).to eq('chained lang')
114
-
115
- path = language.path
116
-
117
- updated_language = VCR.use_cassette('update_language_chained') do
118
- language.update lang_name: 'updated!'
119
- end
120
-
121
- expect(updated_language.client.token).to eq(test_client.token)
122
- expect(updated_language.lang_name).to eq('updated!')
123
- expect(updated_language.lang_id).to eq(language.lang_id)
124
- expect(updated_language.path).to eq(path)
125
-
126
- delete_response = VCR.use_cassette('delete_language_chained') do
127
- updated_language.destroy
128
- end
129
-
130
- expect(delete_response['project_id']).to eq(project_id)
131
- expect(delete_response['language_deleted']).to eq(true)
132
- end
133
- end
134
- end
@@ -1,113 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:team_id) { 176_692 }
5
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
6
- let(:key_id) { 15_519_786 }
7
- let(:order_id) { '201903198B2' }
8
- let(:card_id) { 1774 }
9
-
10
- describe '#orders' do
11
- it 'returns all orders' do
12
- orders = VCR.use_cassette('all_orders') do
13
- test_client.orders team_id
14
- end.collection
15
-
16
- expect(orders.count).to eq(1)
17
- expect(orders.first.order_id).to eq(order_id)
18
- end
19
-
20
- it 'supports pagination' do
21
- orders = VCR.use_cassette('all_orders_pagination') do
22
- test_client.orders team_id, limit: 1, page: 1
23
- end
24
-
25
- expect(orders.collection.count).to eq(1)
26
- expect(orders.total_results).to eq(1)
27
- expect(orders.total_pages).to eq(1)
28
- expect(orders.results_per_page).to eq(1)
29
- expect(orders.current_page).to eq(1)
30
- end
31
- end
32
-
33
- specify '#order' do
34
- order = VCR.use_cassette('order') do
35
- test_client.order team_id, order_id
36
- end
37
-
38
- expect(order.order_id).to eq(order_id)
39
- expect(order.project_id).to eq(project_id)
40
- expect(order.card_id).to eq(card_id)
41
- expect(order.status).to eq('completed')
42
- expect(order.created_at).to eq('2019-03-19 18:18:21 (Etc/UTC)')
43
- expect(order.created_by).to eq(20_181)
44
- expect(order.created_by_email).to eq('bodrovis@protonmail.com')
45
- expect(order.source_language_iso).to eq('en')
46
- expect(order.target_language_isos).to eq(%w[ru])
47
- expect(order.keys).to eq([key_id])
48
- expect(order.source_words['ru']).to eq(1)
49
- expect(order.provider_slug).to eq('gengo')
50
- expect(order.translation_style).to eq('friendly')
51
- expect(order.translation_tier).to eq(1)
52
- expect(order.translation_tier_name).to eq('Professional translator')
53
- expect(order.briefing).to eq('Some briefing')
54
- expect(order.total).to eq(0.07)
55
- expect(order.payment_method).to be_nil
56
- end
57
-
58
- specify '#reload_data' do
59
- order = VCR.use_cassette('order') do
60
- test_client.order team_id, order_id
61
- end
62
-
63
- reloaded_order = VCR.use_cassette('order') do
64
- order.reload_data
65
- end
66
-
67
- expect(reloaded_order.order_id).to eq(order.order_id)
68
- end
69
-
70
- specify '#create_order' do
71
- order = VCR.use_cassette('create_order') do
72
- test_client.create_order team_id,
73
- project_id: project_id,
74
- card_id: card_id,
75
- briefing: 'Some briefing',
76
- source_language_iso: 'en',
77
- target_language_isos: [
78
- 'ru'
79
- ],
80
- keys: [
81
- key_id
82
- ],
83
- provider_slug: 'gengo',
84
- translation_tier: '1'
85
- end
86
-
87
- expect(order.order_id).to eq(order_id)
88
- expect(order.status).to eq('in progress')
89
- end
90
-
91
- it 'creates an order with dry run' do
92
- order = VCR.use_cassette('create_order_dry_run') do
93
- test_client.create_order team_id,
94
- project_id: project_id,
95
- card_id: card_id,
96
- briefing: 'Some briefing',
97
- source_language_iso: 'en',
98
- target_language_isos: [
99
- 'ru'
100
- ],
101
- keys: [
102
- 74_189_435
103
- ],
104
- provider_slug: 'gengo',
105
- translation_tier: '1',
106
- dry_run: true
107
- end
108
-
109
- expect(order.order_id).to be_nil
110
- expect(order.status).to eq('draft')
111
- expect(order.dry_run).to be true
112
- end
113
- end
@@ -1,92 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:card_id) { 1773 }
5
-
6
- describe '#payment_cards' do
7
- it 'returns all payment cards' do
8
- cards = VCR.use_cassette('all_payment_cards') do
9
- test_client.payment_cards
10
- end
11
-
12
- expect(cards.user_id).to eq(20_181)
13
- card = cards.collection.first
14
- expect(card.card_id).to eq(1774)
15
- expect(card.last4).to eq('0358')
16
- end
17
-
18
- it 'supports pagination' do
19
- cards = VCR.use_cassette('all_payment_cards_pagination') do
20
- test_client.payment_cards limit: 1, page: 1
21
- end
22
-
23
- expect(cards.collection.count).to eq(1)
24
- expect(cards.total_results).to eq(1)
25
- expect(cards.total_pages).to eq(1)
26
- expect(cards.results_per_page).to eq(1)
27
- expect(cards.current_page).to eq(1)
28
-
29
- expect(cards.next_page?).to eq(false)
30
- expect(cards.last_page?).to eq(true)
31
- expect(cards.prev_page?).to eq(false)
32
- expect(cards.first_page?).to eq(true)
33
- end
34
- end
35
-
36
- specify '#create_payment_card' do
37
- card = VCR.use_cassette('new_payment_card') do
38
- test_client.create_payment_card number: '4242424242424242',
39
- cvc: '123',
40
- exp_month: 1,
41
- exp_year: 2030
42
- end
43
-
44
- expect(card.card_id).to eq(card_id)
45
- expect(card.last4).to eq('4242')
46
- end
47
-
48
- specify '#payment_card' do
49
- card = VCR.use_cassette('payment_card') do
50
- test_client.payment_card card_id
51
- end
52
-
53
- expect(card.user_id).to eq(20_181)
54
- expect(card.card_id).to eq(card_id)
55
- expect(card.brand).to eq('Visa')
56
- expect(card.last4).to eq('4242')
57
- expect(card.created_at).to eq('2019-03-19 17:01:22 (Etc/UTC)')
58
- end
59
-
60
- specify '#reload_data' do
61
- card = VCR.use_cassette('payment_card') do
62
- test_client.payment_card card_id
63
- end
64
-
65
- reloaded_card = VCR.use_cassette('payment_card') do
66
- card.reload_data
67
- end
68
-
69
- expect(reloaded_card.card_id).to eq(card.card_id)
70
- end
71
-
72
- specify '#destroy_payment_card' do
73
- result = VCR.use_cassette('destroy_payment_card') do
74
- test_client.destroy_payment_card card_id
75
- end
76
-
77
- expect(result['card_deleted']).to eq(true)
78
- expect(result['card_id']).to eq(card_id)
79
- end
80
-
81
- it 'supports chained destroy' do
82
- card = VCR.use_cassette('payment_card') do
83
- test_client.payment_card card_id
84
- end
85
- result = VCR.use_cassette('destroy_payment_card') do
86
- card.destroy
87
- end
88
-
89
- expect(result['card_deleted']).to eq(true)
90
- expect(result['card_id']).to eq(card_id)
91
- end
92
- end