ruby-lokalise-api 1.1.0 → 2.0.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/CHANGELOG.md +8 -2
- data/README.md +172 -10
- data/lib/ruby-lokalise-api.rb +2 -0
- data/lib/ruby-lokalise-api/client.rb +18 -0
- data/lib/ruby-lokalise-api/collections/base.rb +11 -10
- data/lib/ruby-lokalise-api/collections/contributor.rb +1 -3
- data/lib/ruby-lokalise-api/collections/file.rb +1 -3
- data/lib/ruby-lokalise-api/collections/key.rb +8 -3
- data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -3
- data/lib/ruby-lokalise-api/collections/project.rb +1 -3
- data/lib/ruby-lokalise-api/collections/project_comment.rb +1 -3
- data/lib/ruby-lokalise-api/collections/project_language.rb +1 -3
- data/lib/ruby-lokalise-api/collections/screenshot.rb +1 -3
- data/lib/ruby-lokalise-api/collections/snapshot.rb +1 -3
- data/lib/ruby-lokalise-api/collections/system_language.rb +1 -3
- data/lib/ruby-lokalise-api/collections/task.rb +1 -3
- data/lib/ruby-lokalise-api/collections/team.rb +1 -3
- data/lib/ruby-lokalise-api/collections/team_user.rb +1 -3
- data/lib/ruby-lokalise-api/collections/translation.rb +1 -3
- data/lib/ruby-lokalise-api/error.rb +2 -0
- data/lib/ruby-lokalise-api/request.rb +11 -3
- data/lib/ruby-lokalise-api/resources/base.rb +51 -41
- data/lib/ruby-lokalise-api/resources/contributor.rb +6 -4
- data/lib/ruby-lokalise-api/resources/file.rb +7 -12
- data/lib/ruby-lokalise-api/resources/key.rb +5 -4
- data/lib/ruby-lokalise-api/resources/key_comment.rb +6 -4
- data/lib/ruby-lokalise-api/resources/project.rb +10 -7
- data/lib/ruby-lokalise-api/resources/project_language.rb +5 -4
- data/lib/ruby-lokalise-api/resources/screenshot.rb +5 -4
- data/lib/ruby-lokalise-api/resources/snapshot.rb +10 -5
- data/lib/ruby-lokalise-api/resources/task.rb +5 -4
- data/lib/ruby-lokalise-api/resources/team_user.rb +6 -4
- data/lib/ruby-lokalise-api/resources/translation.rb +5 -4
- data/lib/ruby-lokalise-api/rest/comments.rb +6 -6
- data/lib/ruby-lokalise-api/rest/contributors.rb +6 -6
- data/lib/ruby-lokalise-api/rest/files.rb +3 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +9 -9
- data/lib/ruby-lokalise-api/rest/languages.rb +7 -7
- data/lib/ruby-lokalise-api/rest/projects.rb +7 -7
- data/lib/ruby-lokalise-api/rest/screenshots.rb +6 -6
- data/lib/ruby-lokalise-api/rest/snapshots.rb +5 -5
- data/lib/ruby-lokalise-api/rest/tasks.rb +6 -6
- data/lib/ruby-lokalise-api/rest/team_users.rb +5 -5
- data/lib/ruby-lokalise-api/rest/teams.rb +1 -1
- data/lib/ruby-lokalise-api/rest/translations.rb +3 -3
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +19 -5
- data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +12 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +4 -0
- data/lib/ruby-lokalise-api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +1 -0
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +22 -5
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +35 -2
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +55 -4
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +31 -2
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +36 -2
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +45 -8
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +25 -2
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +38 -2
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +25 -2
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +17 -3
- metadata +17 -2
@@ -81,11 +81,40 @@ RSpec.describe Lokalise::Client do
|
|
81
81
|
expect(language.plural_forms).to eq(%w[one])
|
82
82
|
end
|
83
83
|
|
84
|
-
specify '#
|
84
|
+
specify '#destroy_language' do
|
85
85
|
response = VCR.use_cassette('delete_language') do
|
86
|
-
test_client.
|
86
|
+
test_client.destroy_language project_id, new_language_id
|
87
87
|
end
|
88
88
|
expect(response['project_id']).to eq(project_id)
|
89
89
|
expect(response['language_deleted']).to eq(true)
|
90
90
|
end
|
91
|
+
|
92
|
+
context 'project language chained methods' do
|
93
|
+
it 'should support update and destroy' do
|
94
|
+
language = VCR.use_cassette('create_another_language') do
|
95
|
+
test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'chained lang'
|
96
|
+
end.collection.first
|
97
|
+
|
98
|
+
expect(language.client).to eq(test_client)
|
99
|
+
expect(language.lang_name).to eq('chained lang')
|
100
|
+
|
101
|
+
path = language.path
|
102
|
+
|
103
|
+
updated_language = VCR.use_cassette('update_language_chained') do
|
104
|
+
language.update lang_name: 'updated!'
|
105
|
+
end
|
106
|
+
|
107
|
+
expect(updated_language.client).to eq(test_client)
|
108
|
+
expect(updated_language.lang_name).to eq('updated!')
|
109
|
+
expect(updated_language.lang_id).to eq(language.lang_id)
|
110
|
+
expect(updated_language.path).to eq(path)
|
111
|
+
|
112
|
+
delete_response = VCR.use_cassette('delete_language_chained') do
|
113
|
+
updated_language.destroy
|
114
|
+
end
|
115
|
+
|
116
|
+
expect(delete_response['project_id']).to eq(project_id)
|
117
|
+
expect(delete_response['language_deleted']).to eq(true)
|
118
|
+
end
|
119
|
+
end
|
91
120
|
end
|
@@ -74,11 +74,45 @@ RSpec.describe Lokalise::Client do
|
|
74
74
|
expect(response['keys_deleted']).to eq(true)
|
75
75
|
end
|
76
76
|
|
77
|
-
specify '#
|
77
|
+
specify '#destroy_project' do
|
78
78
|
response = VCR.use_cassette('delete_project') do
|
79
|
-
test_client.
|
79
|
+
test_client.destroy_project new_project_id
|
80
80
|
end
|
81
81
|
expect(response['project_id']).to eq(new_project_id)
|
82
82
|
expect(response['project_deleted']).to eq(true)
|
83
83
|
end
|
84
|
+
|
85
|
+
context 'project chained methods' do
|
86
|
+
it 'should support update, empty, and destroy' do
|
87
|
+
project = VCR.use_cassette('create_another_project') do
|
88
|
+
test_client.create_project name: 'chained proj'
|
89
|
+
end
|
90
|
+
|
91
|
+
expect(project.name).to eq('chained proj')
|
92
|
+
|
93
|
+
path = project.path
|
94
|
+
|
95
|
+
updated_project = VCR.use_cassette('update_project_chained') do
|
96
|
+
project.update name: 'updated!'
|
97
|
+
end
|
98
|
+
|
99
|
+
expect(updated_project.client).to eq(test_client)
|
100
|
+
expect(updated_project.name).to eq('updated!')
|
101
|
+
expect(updated_project.path).to eq(path)
|
102
|
+
|
103
|
+
empty_response = VCR.use_cassette('empty_project_chained') do
|
104
|
+
updated_project.empty
|
105
|
+
end
|
106
|
+
|
107
|
+
expect(empty_response['project_id']).to eq(updated_project.project_id)
|
108
|
+
expect(empty_response['keys_deleted']).to eq(true)
|
109
|
+
|
110
|
+
delete_response = VCR.use_cassette('delete_project_chained') do
|
111
|
+
updated_project.destroy
|
112
|
+
end
|
113
|
+
|
114
|
+
expect(delete_response['project_id']).to eq(updated_project.project_id)
|
115
|
+
expect(delete_response['project_deleted']).to eq(true)
|
116
|
+
end
|
117
|
+
end
|
84
118
|
end
|
@@ -40,18 +40,13 @@ RSpec.describe Lokalise::Client do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
specify '#create_screenshots' do
|
43
|
-
|
44
|
-
begin
|
43
|
+
screenshot_from_file do |file|
|
45
44
|
screenshot = VCR.use_cassette('create_screenshots') do
|
46
45
|
test_client.create_screenshots project_id, data: file.read, title: 'rspec screen'
|
47
46
|
end.collection.first
|
48
47
|
|
49
48
|
expect(screenshot.title).to eq('rspec screen')
|
50
49
|
expect(screenshot.url).to include('amazonaws.com')
|
51
|
-
rescue StandardError => e
|
52
|
-
puts e
|
53
|
-
ensure
|
54
|
-
file.close
|
55
50
|
end
|
56
51
|
end
|
57
52
|
|
@@ -66,11 +61,53 @@ RSpec.describe Lokalise::Client do
|
|
66
61
|
expect(screenshot.description).to eq('demo desc')
|
67
62
|
end
|
68
63
|
|
69
|
-
specify '#
|
64
|
+
specify '#destroy_screenshot' do
|
70
65
|
response = VCR.use_cassette('delete_screenshot') do
|
71
|
-
test_client.
|
66
|
+
test_client.destroy_screenshot project_id, screenshot_id
|
72
67
|
end
|
73
68
|
expect(response['project_id']).to eq(project_id)
|
74
69
|
expect(response['screenshot_deleted']).to eq(true)
|
75
70
|
end
|
71
|
+
|
72
|
+
context 'screenshot chained methods' do
|
73
|
+
it 'should support update and destroy' do
|
74
|
+
screenshot = screenshot_from_file do |file|
|
75
|
+
VCR.use_cassette('create_another_screenshot') do
|
76
|
+
test_client.create_screenshots project_id, data: file.read, title: 'chained screen'
|
77
|
+
end.collection.first
|
78
|
+
end
|
79
|
+
|
80
|
+
expect(screenshot.client).to eq(test_client)
|
81
|
+
expect(screenshot.title).to eq('chained screen')
|
82
|
+
|
83
|
+
path = screenshot.path
|
84
|
+
|
85
|
+
updated_screenshot = VCR.use_cassette('update_screenshot_chained') do
|
86
|
+
screenshot.update title: 'updated!'
|
87
|
+
end
|
88
|
+
|
89
|
+
expect(updated_screenshot.client).to eq(test_client)
|
90
|
+
expect(updated_screenshot.title).to eq('updated!')
|
91
|
+
expect(updated_screenshot.screenshot_id).to eq(screenshot.screenshot_id)
|
92
|
+
expect(updated_screenshot.path).to eq(path)
|
93
|
+
|
94
|
+
delete_response = VCR.use_cassette('delete_screenshot_chained') do
|
95
|
+
updated_screenshot.destroy
|
96
|
+
end
|
97
|
+
|
98
|
+
expect(delete_response['project_id']).to eq(project_id)
|
99
|
+
expect(delete_response['screenshot_deleted']).to eq(true)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def screenshot_from_file
|
105
|
+
file = File.open File.expand_path('spec/fixtures/screenshot_base64.txt')
|
106
|
+
begin
|
107
|
+
yield file
|
108
|
+
rescue StandardError => e
|
109
|
+
puts e
|
110
|
+
ensure
|
111
|
+
file.close
|
112
|
+
end
|
76
113
|
end
|
@@ -55,12 +55,35 @@ RSpec.describe Lokalise::Client do
|
|
55
55
|
expect(project.project_id).not_to eq(project_id)
|
56
56
|
end
|
57
57
|
|
58
|
-
specify '#
|
58
|
+
specify '#destroy_snapshot' do
|
59
59
|
response = VCR.use_cassette('delete_snapshot') do
|
60
|
-
test_client.
|
60
|
+
test_client.destroy_snapshot project_id, snapshot_id
|
61
61
|
end
|
62
62
|
|
63
63
|
expect(response['project_id']).to eq(project_id)
|
64
64
|
expect(response['snapshot_deleted']).to eq(true)
|
65
65
|
end
|
66
|
+
|
67
|
+
context 'snapshot chained methods' do
|
68
|
+
it 'should support destroy and restore' do
|
69
|
+
snapshot = VCR.use_cassette('create_another_snapshot') do
|
70
|
+
test_client.create_snapshot project_id, title: 'chained'
|
71
|
+
end
|
72
|
+
|
73
|
+
expect(snapshot.title).to eq('chained')
|
74
|
+
|
75
|
+
restored_project = VCR.use_cassette('restore_snapshot_chained') do
|
76
|
+
snapshot.restore
|
77
|
+
end
|
78
|
+
|
79
|
+
expect(restored_project.name).to eq('demo phoenix copy')
|
80
|
+
|
81
|
+
delete_response = VCR.use_cassette('delete_snapshot_chained') do
|
82
|
+
snapshot.destroy
|
83
|
+
end
|
84
|
+
|
85
|
+
expect(delete_response['project_id']).to eq(project_id)
|
86
|
+
expect(delete_response['snapshot_deleted']).to eq(true)
|
87
|
+
end
|
88
|
+
end
|
66
89
|
end
|
@@ -79,11 +79,47 @@ RSpec.describe Lokalise::Client do
|
|
79
79
|
expect(task.auto_close_task).to eq(true)
|
80
80
|
end
|
81
81
|
|
82
|
-
specify '#
|
82
|
+
specify '#destroy_task' do
|
83
83
|
response = VCR.use_cassette('delete_task') do
|
84
|
-
test_client.
|
84
|
+
test_client.destroy_task project_id, task_id
|
85
85
|
end
|
86
86
|
expect(response['project_id']).to eq(project_id)
|
87
87
|
expect(response['task_deleted']).to eq(true)
|
88
88
|
end
|
89
|
+
|
90
|
+
context 'task chained methods' do
|
91
|
+
it 'should support update and destroy' do
|
92
|
+
task = VCR.use_cassette('create_another_task') do
|
93
|
+
test_client.create_task project_id, title: 'chained',
|
94
|
+
keys: [key_id],
|
95
|
+
languages: [
|
96
|
+
{
|
97
|
+
language_iso: 'ru',
|
98
|
+
users: ['20181']
|
99
|
+
}
|
100
|
+
]
|
101
|
+
end
|
102
|
+
|
103
|
+
expect(task.client).to eq(test_client)
|
104
|
+
expect(task.title).to eq('chained')
|
105
|
+
|
106
|
+
path = task.path
|
107
|
+
|
108
|
+
updated_task = VCR.use_cassette('update_task_chained') do
|
109
|
+
task.update title: 'updated!'
|
110
|
+
end
|
111
|
+
|
112
|
+
expect(updated_task.client).to eq(test_client)
|
113
|
+
expect(updated_task.title).to eq('updated!')
|
114
|
+
expect(updated_task.task_id).to eq(task.task_id)
|
115
|
+
expect(updated_task.path).to eq(path)
|
116
|
+
|
117
|
+
delete_response = VCR.use_cassette('delete_task_chained') do
|
118
|
+
updated_task.destroy
|
119
|
+
end
|
120
|
+
|
121
|
+
expect(delete_response['project_id']).to eq(project_id)
|
122
|
+
expect(delete_response['task_deleted']).to eq(true)
|
123
|
+
end
|
124
|
+
end
|
89
125
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
RSpec.describe Lokalise::Client do
|
2
2
|
let(:team_id) { 176_692 }
|
3
3
|
let(:team_user_id) { 25_953 }
|
4
|
+
let(:another_user_id) { 26_265 }
|
4
5
|
|
5
6
|
describe '#team_users' do
|
6
7
|
it 'should return all team_users' do
|
@@ -46,11 +47,33 @@ RSpec.describe Lokalise::Client do
|
|
46
47
|
expect(team_user.role).to eq('admin')
|
47
48
|
end
|
48
49
|
|
49
|
-
specify '#
|
50
|
+
specify '#destroy_team_user' do
|
50
51
|
response = VCR.use_cassette('delete_team_user') do
|
51
|
-
test_client.
|
52
|
+
test_client.destroy_team_user team_id, team_user_id
|
52
53
|
end
|
53
54
|
expect(response['team_id']).to eq(team_id)
|
54
55
|
expect(response['team_user_deleted']).to eq(true)
|
55
56
|
end
|
57
|
+
|
58
|
+
context 'team user chained methods' do
|
59
|
+
it 'should support update and destroy' do
|
60
|
+
team_user = VCR.use_cassette('another_team_user') do
|
61
|
+
test_client.team_user team_id, another_user_id
|
62
|
+
end
|
63
|
+
|
64
|
+
updated_team_user = VCR.use_cassette('update_team_user_chained') do
|
65
|
+
team_user.update role: 'admin'
|
66
|
+
end
|
67
|
+
|
68
|
+
expect(updated_team_user.client).to eq(test_client)
|
69
|
+
expect(updated_team_user.role).to eq('admin')
|
70
|
+
|
71
|
+
delete_response = VCR.use_cassette('delete_team_user_chained') do
|
72
|
+
updated_team_user.destroy
|
73
|
+
end
|
74
|
+
|
75
|
+
expect(delete_response['team_id']).to eq(team_id)
|
76
|
+
expect(delete_response['team_user_deleted']).to eq(true)
|
77
|
+
end
|
78
|
+
end
|
56
79
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
RSpec.describe Lokalise::Client do
|
2
2
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
3
|
let(:translation_id) { 80_015_147 }
|
4
|
+
let(:another_translation_id) { 82_070_312 }
|
4
5
|
|
5
6
|
describe '#translations' do
|
6
7
|
it 'should return all translations' do
|
@@ -23,7 +24,6 @@ RSpec.describe Lokalise::Client do
|
|
23
24
|
expect(translations.current_page).to eq(2)
|
24
25
|
expect(translations.request_params[:page]).to eq(2)
|
25
26
|
expect(translations.request_params[:disable_references]).to eq(0)
|
26
|
-
expect(translations.ids).to eq([project_id])
|
27
27
|
|
28
28
|
next_page_trans = VCR.use_cassette('translations_next_page') do
|
29
29
|
translations.next_page
|
@@ -35,7 +35,6 @@ RSpec.describe Lokalise::Client do
|
|
35
35
|
expect(next_page_trans.request_params[:disable_references]).to eq(0)
|
36
36
|
expect(next_page_trans.total_results).to eq(9)
|
37
37
|
expect(next_page_trans.current_page).to eq(3)
|
38
|
-
expect(next_page_trans.ids).to eq([project_id])
|
39
38
|
expect(next_page_trans.next_page?).to eq(false)
|
40
39
|
expect(next_page_trans.prev_page?).to eq(true)
|
41
40
|
|
@@ -51,7 +50,6 @@ RSpec.describe Lokalise::Client do
|
|
51
50
|
expect(prev_page_trans.current_page).to eq(1)
|
52
51
|
expect(prev_page_trans.next_page?).to eq(true)
|
53
52
|
expect(prev_page_trans.prev_page?).to eq(false)
|
54
|
-
expect(prev_page_trans.ids).to eq([project_id])
|
55
53
|
end
|
56
54
|
end
|
57
55
|
|
@@ -82,4 +80,20 @@ RSpec.describe Lokalise::Client do
|
|
82
80
|
expect(translation.translation).to eq('rspec trans')
|
83
81
|
expect(translation.is_reviewed).to eq(true)
|
84
82
|
end
|
83
|
+
|
84
|
+
context 'translation chained methods' do
|
85
|
+
it 'should support update' do
|
86
|
+
translation = VCR.use_cassette('another_translation') do
|
87
|
+
test_client.translation project_id, another_translation_id
|
88
|
+
end
|
89
|
+
|
90
|
+
updated_translation = VCR.use_cassette('update_translation_chained') do
|
91
|
+
translation.update translation: 'chained updated'
|
92
|
+
end
|
93
|
+
|
94
|
+
expect(updated_translation.client).to eq(test_client)
|
95
|
+
expect(updated_translation.translation).to eq('chained updated')
|
96
|
+
expect(updated_translation.translation_id).to eq(translation.translation_id)
|
97
|
+
end
|
98
|
+
end
|
85
99
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lokalise-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Bodrov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: addressable
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.5'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.5'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: faraday
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -189,6 +203,7 @@ files:
|
|
189
203
|
- lib/ruby-lokalise-api/rest/teams.rb
|
190
204
|
- lib/ruby-lokalise-api/rest/translations.rb
|
191
205
|
- lib/ruby-lokalise-api/utils/attribute_helpers.rb
|
206
|
+
- lib/ruby-lokalise-api/utils/endpoint_helpers.rb
|
192
207
|
- lib/ruby-lokalise-api/utils/string_utils.rb
|
193
208
|
- lib/ruby-lokalise-api/version.rb
|
194
209
|
- ruby-lokalise-api.gemspec
|