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.
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