ruby-lokalise-api 2.8.0 → 3.1.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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODE_OF_CONDUCT.md +1 -1
  3. data/.github/CONTRIBUTING.md +2 -2
  4. data/CHANGELOG.md +46 -0
  5. data/Gemfile +2 -0
  6. data/README.md +293 -178
  7. data/Rakefile +6 -1
  8. data/lib/ruby-lokalise-api.rb +4 -0
  9. data/lib/ruby-lokalise-api/client.rb +18 -4
  10. data/lib/ruby-lokalise-api/collections/base.rb +6 -2
  11. data/lib/ruby-lokalise-api/collections/branch.rb +3 -1
  12. data/lib/ruby-lokalise-api/collections/contributor.rb +2 -0
  13. data/lib/ruby-lokalise-api/collections/custom_translation_status.rb +3 -1
  14. data/lib/ruby-lokalise-api/collections/file.rb +2 -0
  15. data/lib/ruby-lokalise-api/collections/key.rb +2 -0
  16. data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -0
  17. data/lib/ruby-lokalise-api/collections/order.rb +2 -0
  18. data/lib/ruby-lokalise-api/collections/payment_card.rb +2 -0
  19. data/lib/ruby-lokalise-api/collections/project.rb +2 -0
  20. data/lib/ruby-lokalise-api/collections/project_comment.rb +2 -0
  21. data/lib/ruby-lokalise-api/collections/project_language.rb +2 -0
  22. data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
  23. data/lib/ruby-lokalise-api/collections/screenshot.rb +2 -0
  24. data/lib/ruby-lokalise-api/collections/snapshot.rb +2 -0
  25. data/lib/ruby-lokalise-api/collections/system_language.rb +2 -0
  26. data/lib/ruby-lokalise-api/collections/task.rb +2 -0
  27. data/lib/ruby-lokalise-api/collections/team.rb +2 -0
  28. data/lib/ruby-lokalise-api/collections/team_user.rb +2 -0
  29. data/lib/ruby-lokalise-api/collections/team_user_group.rb +3 -1
  30. data/lib/ruby-lokalise-api/collections/translation.rb +2 -0
  31. data/lib/ruby-lokalise-api/collections/translation_provider.rb +2 -0
  32. data/lib/ruby-lokalise-api/collections/webhook.rb +2 -0
  33. data/lib/ruby-lokalise-api/connection.rb +3 -1
  34. data/lib/ruby-lokalise-api/data/attributes.json +28 -13
  35. data/lib/ruby-lokalise-api/error.rb +2 -0
  36. data/lib/ruby-lokalise-api/json_handler.rb +4 -0
  37. data/lib/ruby-lokalise-api/request.rb +10 -1
  38. data/lib/ruby-lokalise-api/resources/base.rb +53 -21
  39. data/lib/ruby-lokalise-api/resources/branch.rb +3 -1
  40. data/lib/ruby-lokalise-api/resources/contributor.rb +4 -2
  41. data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +4 -2
  42. data/lib/ruby-lokalise-api/resources/file.rb +5 -1
  43. data/lib/ruby-lokalise-api/resources/key.rb +3 -1
  44. data/lib/ruby-lokalise-api/resources/key_comment.rb +5 -3
  45. data/lib/ruby-lokalise-api/resources/order.rb +4 -0
  46. data/lib/ruby-lokalise-api/resources/payment_card.rb +3 -1
  47. data/lib/ruby-lokalise-api/resources/project.rb +3 -1
  48. data/lib/ruby-lokalise-api/resources/project_comment.rb +3 -1
  49. data/lib/ruby-lokalise-api/resources/project_language.rb +5 -3
  50. data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
  51. data/lib/ruby-lokalise-api/resources/screenshot.rb +3 -1
  52. data/lib/ruby-lokalise-api/resources/snapshot.rb +5 -1
  53. data/lib/ruby-lokalise-api/resources/system_language.rb +3 -1
  54. data/lib/ruby-lokalise-api/resources/task.rb +3 -1
  55. data/lib/ruby-lokalise-api/resources/team.rb +2 -0
  56. data/lib/ruby-lokalise-api/resources/team_user.rb +4 -2
  57. data/lib/ruby-lokalise-api/resources/team_user_group.rb +6 -3
  58. data/lib/ruby-lokalise-api/resources/translation.rb +3 -1
  59. data/lib/ruby-lokalise-api/resources/translation_provider.rb +5 -0
  60. data/lib/ruby-lokalise-api/resources/webhook.rb +13 -3
  61. data/lib/ruby-lokalise-api/rest/branches.rb +2 -0
  62. data/lib/ruby-lokalise-api/rest/comments.rb +7 -5
  63. data/lib/ruby-lokalise-api/rest/contributors.rb +7 -5
  64. data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +8 -6
  65. data/lib/ruby-lokalise-api/rest/files.rb +5 -3
  66. data/lib/ruby-lokalise-api/rest/keys.rb +9 -7
  67. data/lib/ruby-lokalise-api/rest/languages.rb +8 -6
  68. data/lib/ruby-lokalise-api/rest/orders.rb +2 -0
  69. data/lib/ruby-lokalise-api/rest/payment_cards.rb +5 -3
  70. data/lib/ruby-lokalise-api/rest/projects.rb +8 -6
  71. data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
  72. data/lib/ruby-lokalise-api/rest/screenshots.rb +7 -5
  73. data/lib/ruby-lokalise-api/rest/snapshots.rb +6 -4
  74. data/lib/ruby-lokalise-api/rest/tasks.rb +7 -5
  75. data/lib/ruby-lokalise-api/rest/team_user_group.rb +6 -4
  76. data/lib/ruby-lokalise-api/rest/team_users.rb +6 -4
  77. data/lib/ruby-lokalise-api/rest/teams.rb +3 -1
  78. data/lib/ruby-lokalise-api/rest/translation_providers.rb +4 -2
  79. data/lib/ruby-lokalise-api/rest/translations.rb +5 -3
  80. data/lib/ruby-lokalise-api/rest/webhooks.rb +18 -5
  81. data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +2 -0
  82. data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +2 -0
  83. data/lib/ruby-lokalise-api/utils/string_utils.rb +2 -0
  84. data/lib/ruby-lokalise-api/version.rb +3 -1
  85. data/ruby-lokalise-api.gemspec +9 -5
  86. data/spec/lib/ruby-lokalise-api/connection_spec.rb +10 -7
  87. data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +9 -5
  88. data/spec/lib/ruby-lokalise-api/error_spec.rb +15 -4
  89. data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +19 -5
  90. data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +19 -5
  91. data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +18 -4
  92. data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +18 -4
  93. data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +21 -11
  94. data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +46 -26
  95. data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +20 -6
  96. data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +16 -2
  97. data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +21 -5
  98. data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +18 -4
  99. data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +57 -0
  100. data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +18 -4
  101. data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +31 -4
  102. data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +18 -4
  103. data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +92 -6
  104. data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +19 -4
  105. data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +2 -0
  106. data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +9 -2
  107. data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +20 -6
  108. data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +54 -2
  109. data/spec/lib/ruby-lokalise-api/utils/snakecase_spec.rb +2 -0
  110. data/spec/lib/ruby-lokalise-api_spec.rb +12 -9
  111. data/spec/spec_helper.rb +8 -1
  112. data/spec/support/test_client.rb +2 -0
  113. data/spec/support/vcr.rb +2 -0
  114. 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.co/api2docs/ruby/#transition-list-all-snapshots-get
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.co/api2docs/ruby/#transition-create-a-snapshot-post
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.co/api2docs/ruby/#transition-restore-a-snapshot-post
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.co/api2docs/ruby/#transition-delete-a-snapshot-delete
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.co/api2docs/ruby/#transition-list-all-tasks-get
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.co/api2docs/ruby/#transition-retrieve-a-task-get
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.co/api2docs/ruby/#transition-create-a-task-post
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.co/api2docs/ruby/#transition-update-a-task-put
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.co/api2docs/ruby/#transition-delete-a-task-delete
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.co/api2docs/ruby/#transition-list-all-team-users-get
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.co/api2docs/ruby/#transition-retrieve-a-team-user-get
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.co/api2docs/ruby/#transition-update-a-team-user-put
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.co/api2docs/ruby/#transition-delete-a-team-user-delete
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.co/api2docs/ruby/#transition-list-all-teams-get
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.co/api2docs/ruby/#transition-list-all-providers-get
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.co/api2docs/ruby/#transition-retrieve-a-provider-get
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.co/api2docs/ruby/#transition-list-all-translations-get
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.co/api2docs/ruby/#transition-retrieve-a-translation-get
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.co/api2docs/ruby/#transition-update-a-translation-put
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.co/api2docs/ruby/#transition-list-all-webhooks-get
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.co/api2docs/ruby/#transition-retrieve-a-webhook-get
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.co/api2docs/ruby/#transition-create-a-webhook-post
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.co/api2docs/ruby/#transition-update-a-webhook-put
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.co/api2docs/ruby/#transition-delete-a-webhook-delete
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lokalise
2
4
  module Utils
3
5
  module AttributeHelpers
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lokalise
2
4
  module Utils
3
5
  module EndpointHelpers
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Initial code taken from Facets gem by Rubyworks
2
4
  # https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/snakecase.rb
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lokalise
2
- VERSION = '2.8.0'.freeze
4
+ VERSION = '3.1.0'
3
5
  end
@@ -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.13'
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.8'
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.0'
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', '~> 5.0'
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(:each) { Lokalise.reset_client! }
5
- after(:all) do
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 'should allow to customize timeouts' do
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 'should be possible to customize adapter' do
35
+ it 'is possible to customize adapter' do
33
36
  conn = connection test_client
34
- expect(conn.builder.handlers).to include(Faraday::Adapter::NetHttp)
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.handlers).to include(Faraday::Adapter::Excon)
40
- expect(conn.builder.handlers).to include(Faraday::Adapter::NetHttp)
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 'Custom JSON parser' do
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
- before :all do
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 :all do
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 'should allow to customize #load' do
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 'should allow to customize #dump' do
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(:each) { Lokalise.reset_client! }
5
- after(:all) { Lokalise.reset_client! }
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 'should raise BadRequest when API token is invalid' do
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 'should raise NotFound when the provided path cannot be found' do
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