ruby-lokalise-api 2.8.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODE_OF_CONDUCT.md +1 -1
- data/.github/CONTRIBUTING.md +2 -2
- data/CHANGELOG.md +46 -0
- data/Gemfile +2 -0
- data/README.md +293 -178
- data/Rakefile +6 -1
- data/lib/ruby-lokalise-api.rb +4 -0
- data/lib/ruby-lokalise-api/client.rb +18 -4
- data/lib/ruby-lokalise-api/collections/base.rb +6 -2
- data/lib/ruby-lokalise-api/collections/branch.rb +3 -1
- data/lib/ruby-lokalise-api/collections/contributor.rb +2 -0
- data/lib/ruby-lokalise-api/collections/custom_translation_status.rb +3 -1
- data/lib/ruby-lokalise-api/collections/file.rb +2 -0
- data/lib/ruby-lokalise-api/collections/key.rb +2 -0
- data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -0
- data/lib/ruby-lokalise-api/collections/order.rb +2 -0
- data/lib/ruby-lokalise-api/collections/payment_card.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project_comment.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project_language.rb +2 -0
- data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
- data/lib/ruby-lokalise-api/collections/screenshot.rb +2 -0
- data/lib/ruby-lokalise-api/collections/snapshot.rb +2 -0
- data/lib/ruby-lokalise-api/collections/system_language.rb +2 -0
- data/lib/ruby-lokalise-api/collections/task.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team_user.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team_user_group.rb +3 -1
- data/lib/ruby-lokalise-api/collections/translation.rb +2 -0
- data/lib/ruby-lokalise-api/collections/translation_provider.rb +2 -0
- data/lib/ruby-lokalise-api/collections/webhook.rb +2 -0
- data/lib/ruby-lokalise-api/connection.rb +3 -1
- data/lib/ruby-lokalise-api/data/attributes.json +28 -13
- data/lib/ruby-lokalise-api/error.rb +2 -0
- data/lib/ruby-lokalise-api/json_handler.rb +4 -0
- data/lib/ruby-lokalise-api/request.rb +10 -1
- data/lib/ruby-lokalise-api/resources/base.rb +53 -21
- data/lib/ruby-lokalise-api/resources/branch.rb +3 -1
- data/lib/ruby-lokalise-api/resources/contributor.rb +4 -2
- data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +4 -2
- data/lib/ruby-lokalise-api/resources/file.rb +5 -1
- data/lib/ruby-lokalise-api/resources/key.rb +3 -1
- data/lib/ruby-lokalise-api/resources/key_comment.rb +5 -3
- data/lib/ruby-lokalise-api/resources/order.rb +4 -0
- data/lib/ruby-lokalise-api/resources/payment_card.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project_comment.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project_language.rb +5 -3
- data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
- data/lib/ruby-lokalise-api/resources/screenshot.rb +3 -1
- data/lib/ruby-lokalise-api/resources/snapshot.rb +5 -1
- data/lib/ruby-lokalise-api/resources/system_language.rb +3 -1
- data/lib/ruby-lokalise-api/resources/task.rb +3 -1
- data/lib/ruby-lokalise-api/resources/team.rb +2 -0
- data/lib/ruby-lokalise-api/resources/team_user.rb +4 -2
- data/lib/ruby-lokalise-api/resources/team_user_group.rb +6 -3
- data/lib/ruby-lokalise-api/resources/translation.rb +3 -1
- data/lib/ruby-lokalise-api/resources/translation_provider.rb +5 -0
- data/lib/ruby-lokalise-api/resources/webhook.rb +13 -3
- data/lib/ruby-lokalise-api/rest/branches.rb +2 -0
- data/lib/ruby-lokalise-api/rest/comments.rb +7 -5
- data/lib/ruby-lokalise-api/rest/contributors.rb +7 -5
- data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +8 -6
- data/lib/ruby-lokalise-api/rest/files.rb +5 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +9 -7
- data/lib/ruby-lokalise-api/rest/languages.rb +8 -6
- data/lib/ruby-lokalise-api/rest/orders.rb +2 -0
- data/lib/ruby-lokalise-api/rest/payment_cards.rb +5 -3
- data/lib/ruby-lokalise-api/rest/projects.rb +8 -6
- data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
- data/lib/ruby-lokalise-api/rest/screenshots.rb +7 -5
- data/lib/ruby-lokalise-api/rest/snapshots.rb +6 -4
- data/lib/ruby-lokalise-api/rest/tasks.rb +7 -5
- data/lib/ruby-lokalise-api/rest/team_user_group.rb +6 -4
- data/lib/ruby-lokalise-api/rest/team_users.rb +6 -4
- data/lib/ruby-lokalise-api/rest/teams.rb +3 -1
- data/lib/ruby-lokalise-api/rest/translation_providers.rb +4 -2
- data/lib/ruby-lokalise-api/rest/translations.rb +5 -3
- data/lib/ruby-lokalise-api/rest/webhooks.rb +18 -5
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +2 -0
- data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +2 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +2 -0
- data/lib/ruby-lokalise-api/version.rb +3 -1
- data/ruby-lokalise-api.gemspec +9 -5
- data/spec/lib/ruby-lokalise-api/connection_spec.rb +10 -7
- data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +9 -5
- data/spec/lib/ruby-lokalise-api/error_spec.rb +15 -4
- data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +21 -11
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +46 -26
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +20 -6
- data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +16 -2
- data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +21 -5
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +57 -0
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +31 -4
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +92 -6
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +19 -4
- data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +2 -0
- data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +9 -2
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +20 -6
- data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +54 -2
- data/spec/lib/ruby-lokalise-api/utils/snakecase_spec.rb +2 -0
- data/spec/lib/ruby-lokalise-api_spec.rb +12 -9
- data/spec/spec_helper.rb +8 -1
- data/spec/support/test_client.rb +2 -0
- data/spec/support/vcr.rb +2 -0
- metadata +59 -12
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all snapshots for the given project
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-snapshots-get
|
6
8
|
# @return [Lokalise::Collection::Snapshot<Lokalise::Resources::Snapshot>]
|
7
9
|
# @param project_id [String]
|
8
10
|
# @param params [Hash]
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
12
14
|
|
13
15
|
# Creates snapshot for the given project
|
14
16
|
#
|
15
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-snapshot-post
|
16
18
|
# @return [Lokalise::Resources::Snapshot]
|
17
19
|
# @param project_id [String]
|
18
20
|
# @param params [Hash]
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
22
24
|
|
23
25
|
# Restore project from the given snapshot by producing project's copy
|
24
26
|
#
|
25
|
-
# @see https://lokalise.
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-restore-a-snapshot-post
|
26
28
|
# @return [Lokalise::Resources::Project]
|
27
29
|
# @param project_id [String]
|
28
30
|
# @param snapshot_id [String, Integer]
|
@@ -32,7 +34,7 @@ module Lokalise
|
|
32
34
|
|
33
35
|
# Deletes snapshot
|
34
36
|
#
|
35
|
-
# @see https://lokalise.
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-snapshot-delete
|
36
38
|
# @return [Hash]
|
37
39
|
# @param project_id [String]
|
38
40
|
# @param snapshot_id [String, Integer]
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all tasks for the given project
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-tasks-get
|
6
8
|
# @return [Lokalise::Collection::Task<Lokalise::Resources::Task>]
|
7
9
|
# @param project_id [String]
|
8
10
|
# @param params [Hash]
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
12
14
|
|
13
15
|
# Returns a single task for the given project
|
14
16
|
#
|
15
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-task-get
|
16
18
|
# @return [Lokalise::Resources::Task]
|
17
19
|
# @param project_id [String]
|
18
20
|
# @param task_id [String, Integer]
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
22
24
|
|
23
25
|
# Creates task for the given project
|
24
26
|
#
|
25
|
-
# @see https://lokalise.
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-task-post
|
26
28
|
# @return [Lokalise::Resources::Task]
|
27
29
|
# @param project_id [String]
|
28
30
|
# @param params [Hash]
|
@@ -32,7 +34,7 @@ module Lokalise
|
|
32
34
|
|
33
35
|
# Updates task for the given project
|
34
36
|
#
|
35
|
-
# @see https://lokalise.
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-task-put
|
36
38
|
# @return [Lokalise::Resources::Task]
|
37
39
|
# @param project_id [String]
|
38
40
|
# @param task_id [String, Integer]
|
@@ -43,7 +45,7 @@ module Lokalise
|
|
43
45
|
|
44
46
|
# Deletes task for the given project
|
45
47
|
#
|
46
|
-
# @see https://lokalise.
|
48
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-task-delete
|
47
49
|
# @return [Hash]
|
48
50
|
# @param project_id [String]
|
49
51
|
# @param task_id [String, Integer]
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all team user groups for the given team
|
@@ -60,7 +62,7 @@ module Lokalise
|
|
60
62
|
def add_projects_to_group(team_id, group_id, project_ids)
|
61
63
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
62
64
|
[team_id, group_id, 'projects', 'add'],
|
63
|
-
project_ids, :projects
|
65
|
+
project_ids, :projects, [team_id, group_id]
|
64
66
|
end
|
65
67
|
|
66
68
|
# Removes projects from the given group
|
@@ -73,7 +75,7 @@ module Lokalise
|
|
73
75
|
def remove_projects_from_group(team_id, group_id, project_ids)
|
74
76
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
75
77
|
[team_id, group_id, 'projects', 'remove'],
|
76
|
-
project_ids, :projects
|
78
|
+
project_ids, :projects, [team_id, group_id]
|
77
79
|
end
|
78
80
|
|
79
81
|
# Adds users to the given group
|
@@ -86,7 +88,7 @@ module Lokalise
|
|
86
88
|
def add_users_to_group(team_id, group_id, users_ids)
|
87
89
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
88
90
|
[team_id, group_id, 'members', 'add'],
|
89
|
-
users_ids, :users
|
91
|
+
users_ids, :users, [team_id, group_id]
|
90
92
|
end
|
91
93
|
|
92
94
|
# Removes users from the given group
|
@@ -99,7 +101,7 @@ module Lokalise
|
|
99
101
|
def remove_users_from_group(team_id, group_id, users_ids)
|
100
102
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
101
103
|
[team_id, group_id, 'members', 'remove'],
|
102
|
-
users_ids, :users
|
104
|
+
users_ids, :users, [team_id, group_id]
|
103
105
|
end
|
104
106
|
end
|
105
107
|
end
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all team users for the given team
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-team-users-get
|
6
8
|
# @return [Lokalise::Collection::TeamUser<Lokalise::Resources::TeamUser>]
|
7
9
|
# @param team_id [String]
|
8
10
|
# @param params [Hash]
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
12
14
|
|
13
15
|
# Returns team user from the given team
|
14
16
|
#
|
15
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-team-user-get
|
16
18
|
# @return [Lokalise::Resources::TeamUser]
|
17
19
|
# @param team_id [String]
|
18
20
|
# @param user_id [String, Integer]
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
22
24
|
|
23
25
|
# Updates team user for the given team
|
24
26
|
#
|
25
|
-
# @see https://lokalise.
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-team-user-put
|
26
28
|
# @return [Lokalise::Resources::TeamUser]
|
27
29
|
# @param team_id [String]
|
28
30
|
# @param user_id [String, Integer]
|
@@ -33,7 +35,7 @@ module Lokalise
|
|
33
35
|
|
34
36
|
# Deletes team user from the given team
|
35
37
|
#
|
36
|
-
# @see https://lokalise.
|
38
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-team-user-delete
|
37
39
|
# @return [Lokalise::Resources::TeamUser]
|
38
40
|
# @param team_id [String]
|
39
41
|
# @param user_id [String, Integer]
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all teams available to the user
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-teams-get
|
6
8
|
# @return [Lokalise::Collection::Team<Lokalise::Resources::Team>]
|
7
9
|
# @param params [Hash]
|
8
10
|
def teams(params = {})
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all translation providers for the given team
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-providers-get
|
6
8
|
# @return [Lokalise::Collection::TranslationProvider<Lokalise::Resources::TranslationProvider>]
|
7
9
|
# @param team_id [String]
|
8
10
|
# @param params [Hash]
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
12
14
|
|
13
15
|
# Returns a single translation provider for the given team
|
14
16
|
#
|
15
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-provider-get
|
16
18
|
# @return [Lokalise::Resources::TranslationProvider]
|
17
19
|
# @param team_id [String]
|
18
20
|
# @param provider_id [String, Integer]
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all translations for the given project (ungrouped)
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-translations-get
|
6
8
|
# @return [Lokalise::Collection::Translation<Lokalise::Resources::Translation>]
|
7
9
|
# @param project_id [String]
|
8
10
|
# @param params [Hash]
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
12
14
|
|
13
15
|
# Returns translation of the given project
|
14
16
|
#
|
15
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-translation-get
|
16
18
|
# @return [Lokalise::Resources::Translation]
|
17
19
|
# @param project_id [String]
|
18
20
|
# @param translation_id [String, Integer]
|
@@ -23,7 +25,7 @@ module Lokalise
|
|
23
25
|
|
24
26
|
# Updates translation of the given project
|
25
27
|
#
|
26
|
-
# @see https://lokalise.
|
28
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-translation-put
|
27
29
|
# @return [Lokalise::Resources::Translation]
|
28
30
|
# @param project_id [String]
|
29
31
|
# @param translation_id [String, Integer]
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Lokalise
|
2
4
|
class Client
|
3
5
|
# Returns all webhooks for the given project
|
4
6
|
#
|
5
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-webhooks-get
|
6
8
|
# @return [Lokalise::Collection::Webhook<Lokalise::Resources::Webhook>]
|
7
9
|
# @param project_id [String]
|
8
10
|
# @param params [Hash]
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
12
14
|
|
13
15
|
# Returns a single webhook for the given project
|
14
16
|
#
|
15
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-webhook-get
|
16
18
|
# @return [Lokalise::Resources::Webhook]
|
17
19
|
# @param project_id [String]
|
18
20
|
# @param webhook_id [String, Integer]
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
22
24
|
|
23
25
|
# Creates webhook for the given project
|
24
26
|
#
|
25
|
-
# @see https://lokalise.
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-webhook-post
|
26
28
|
# @return [Lokalise::Resources::Webhook]
|
27
29
|
# @param project_id [String]
|
28
30
|
# @param params [Hash]
|
@@ -32,7 +34,7 @@ module Lokalise
|
|
32
34
|
|
33
35
|
# Updates webhook for the given project
|
34
36
|
#
|
35
|
-
# @see https://lokalise.
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-webhook-put
|
36
38
|
# @return [Lokalise::Resources::Webhook]
|
37
39
|
# @param project_id [String]
|
38
40
|
# @param webhook_id [String, Integer]
|
@@ -43,12 +45,23 @@ module Lokalise
|
|
43
45
|
|
44
46
|
# Deletes webhook for the given project
|
45
47
|
#
|
46
|
-
# @see https://lokalise.
|
48
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-webhook-delete
|
47
49
|
# @return [Hash]
|
48
50
|
# @param project_id [String]
|
49
51
|
# @param webhook_id [String, Integer]
|
50
52
|
def destroy_webhook(project_id, webhook_id)
|
51
53
|
c_r Lokalise::Resources::Webhook, :destroy, [project_id, webhook_id]
|
52
54
|
end
|
55
|
+
|
56
|
+
# Regenerates secret for the given webhook
|
57
|
+
#
|
58
|
+
# @see https://lokalise.com/api2docs/curl/#transition-regenerate-a-webhook-secret-patch
|
59
|
+
# @return [Hash]
|
60
|
+
# @param project_id [String]
|
61
|
+
# @param webhook_id [String, Integer]
|
62
|
+
def regenerate_webhook_secret(project_id, webhook_id)
|
63
|
+
c_r Lokalise::Resources::Webhook, :regenerate_secret,
|
64
|
+
[project_id, webhook_id, 'secret', 'regenerate']
|
65
|
+
end
|
53
66
|
end
|
54
67
|
end
|
data/ruby-lokalise-api.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require File.expand_path('lib/ruby-lokalise-api/version', __dir__)
|
2
4
|
|
3
5
|
Gem::Specification.new do |spec|
|
@@ -10,7 +12,6 @@ Gem::Specification.new do |spec|
|
|
10
12
|
spec.homepage = 'https://github.com/lokalise/ruby-lokalise-api'
|
11
13
|
spec.license = 'MIT'
|
12
14
|
spec.platform = Gem::Platform::RUBY
|
13
|
-
spec.required_ruby_version = '>= 2.4.0'
|
14
15
|
|
15
16
|
spec.files = Dir['README.md', 'LICENSE',
|
16
17
|
'CHANGELOG.md', 'lib/**/*.rb', 'lib/ruby-lokalise-api/data/attributes.json',
|
@@ -21,14 +22,17 @@ Gem::Specification.new do |spec|
|
|
21
22
|
spec.require_paths = ['lib']
|
22
23
|
|
23
24
|
spec.add_dependency 'addressable', '~> 2.5'
|
24
|
-
spec.add_dependency 'faraday', '~> 0
|
25
|
+
spec.add_dependency 'faraday', '~> 1.0'
|
26
|
+
spec.add_dependency 'json', '>= 1.8.0'
|
25
27
|
|
28
|
+
spec.add_development_dependency 'codecov', '~> 0.1'
|
26
29
|
spec.add_development_dependency 'dotenv', '~> 2.5'
|
27
|
-
spec.add_development_dependency 'oj', '~> 3.
|
30
|
+
spec.add_development_dependency 'oj', '~> 3.10'
|
28
31
|
spec.add_development_dependency 'rake', '~> 13.0'
|
29
32
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
30
33
|
spec.add_development_dependency 'rubocop', '~> 0.60'
|
31
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.
|
34
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.5'
|
35
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.37'
|
32
36
|
spec.add_development_dependency 'simplecov', '~> 0.16'
|
33
|
-
spec.add_development_dependency 'vcr', '~>
|
37
|
+
spec.add_development_dependency 'vcr', '~> 6.0'
|
34
38
|
end
|
@@ -1,8 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Connection do
|
2
4
|
include described_class
|
3
5
|
|
4
|
-
before
|
5
|
-
|
6
|
+
before { Lokalise.reset_client! }
|
7
|
+
|
8
|
+
after do
|
6
9
|
Lokalise.reset_client!
|
7
10
|
Faraday.default_adapter = :net_http
|
8
11
|
end
|
@@ -14,7 +17,7 @@ RSpec.describe Lokalise::Connection do
|
|
14
17
|
expect(conn.headers['X-api-token']).to eq(test_client.token)
|
15
18
|
end
|
16
19
|
|
17
|
-
it '
|
20
|
+
it 'allows to customize timeouts' do
|
18
21
|
custom_client = Lokalise.client(ENV['LOKALISE_API_TOKEN'],
|
19
22
|
open_timeout: 100, timeout: 500)
|
20
23
|
conn = connection custom_client
|
@@ -29,14 +32,14 @@ RSpec.describe Lokalise::Connection do
|
|
29
32
|
expect(another_conn.options.open_timeout).to eq(200)
|
30
33
|
end
|
31
34
|
|
32
|
-
it '
|
35
|
+
it 'is possible to customize adapter' do
|
33
36
|
conn = connection test_client
|
34
|
-
expect(conn.builder.
|
37
|
+
expect(conn.builder.adapter).to eq(Faraday::Adapter::NetHttp)
|
35
38
|
|
36
39
|
Faraday.default_adapter = :excon
|
37
40
|
|
38
41
|
another_conn = connection test_client
|
39
|
-
expect(another_conn.builder.
|
40
|
-
expect(conn.builder.
|
42
|
+
expect(another_conn.builder.adapter).to eq(Faraday::Adapter::Excon)
|
43
|
+
expect(conn.builder.adapter).to eq(Faraday::Adapter::NetHttp)
|
41
44
|
end
|
42
45
|
end
|
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'oj'
|
2
4
|
|
3
|
-
RSpec.describe
|
5
|
+
RSpec.describe Lokalise::JsonHandler do
|
4
6
|
let(:loaded_json) do
|
5
7
|
{'projects' => [{'project_id' => '547879415c01a0e6e0b855.29978928',
|
6
8
|
'name' => 'demo phoenix copy',
|
@@ -25,7 +27,8 @@ RSpec.describe 'Custom JSON parser' do
|
|
25
27
|
'{":name":"rspec proj",":description":"demo project for rspec"}'
|
26
28
|
end
|
27
29
|
|
28
|
-
|
30
|
+
# rubocop:disable RSpec/LeakyConstantDeclaration
|
31
|
+
before do
|
29
32
|
module Lokalise
|
30
33
|
module JsonHandler
|
31
34
|
def custom_dump(obj)
|
@@ -39,7 +42,7 @@ RSpec.describe 'Custom JSON parser' do
|
|
39
42
|
end
|
40
43
|
end
|
41
44
|
|
42
|
-
after
|
45
|
+
after do
|
43
46
|
module Lokalise
|
44
47
|
module JsonHandler
|
45
48
|
def custom_dump(obj)
|
@@ -52,8 +55,9 @@ RSpec.describe 'Custom JSON parser' do
|
|
52
55
|
end
|
53
56
|
end
|
54
57
|
end
|
58
|
+
# rubocop:enable RSpec/LeakyConstantDeclaration
|
55
59
|
|
56
|
-
it '
|
60
|
+
it 'allows to customize #load' do
|
57
61
|
expect(Oj).to receive(:load).and_return(loaded_json)
|
58
62
|
expect(JSON).not_to receive(:parse)
|
59
63
|
projects = VCR.use_cassette('all_projects_pagination') do
|
@@ -65,7 +69,7 @@ RSpec.describe 'Custom JSON parser' do
|
|
65
69
|
expect(projects.collection.first.name).to eq('demo phoenix copy')
|
66
70
|
end
|
67
71
|
|
68
|
-
it '
|
72
|
+
it 'allows to customize #dump' do
|
69
73
|
expect(Oj).to receive(:dump).and_return(dumped_json)
|
70
74
|
expect(JSON).not_to receive(:dump)
|
71
75
|
project = VCR.use_cassette('new_project') do
|
@@ -1,10 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Error do
|
2
4
|
include Lokalise::Request
|
3
5
|
|
4
|
-
before
|
5
|
-
|
6
|
+
before { Lokalise.reset_client! }
|
7
|
+
|
8
|
+
after { Lokalise.reset_client! }
|
9
|
+
|
10
|
+
it 'raises a generic error when the code is unknown' do
|
11
|
+
expect do
|
12
|
+
VCR.use_cassette('error_unknown_code') do
|
13
|
+
get 'projects', Lokalise.client('invalid')
|
14
|
+
end
|
15
|
+
end.to raise_error(described_class)
|
16
|
+
end
|
6
17
|
|
7
|
-
it '
|
18
|
+
it 'raises BadRequest when API token is invalid' do
|
8
19
|
expect do
|
9
20
|
VCR.use_cassette('error_invalid_token') do
|
10
21
|
get 'projects', Lokalise.client('invalid')
|
@@ -12,7 +23,7 @@ RSpec.describe Lokalise::Error do
|
|
12
23
|
end.to raise_error(Lokalise::Error::BadRequest)
|
13
24
|
end
|
14
25
|
|
15
|
-
it '
|
26
|
+
it 'raises NotFound when the provided path cannot be found' do
|
16
27
|
expect do
|
17
28
|
VCR.use_cassette('error_not_found') do
|
18
29
|
get 'invalid_path', test_client
|