crowdin-api 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-lint.yml +1 -1
  3. data/.gitignore +2 -2
  4. data/.rubocop_todo.yml +37 -30
  5. data/README.md +23 -12
  6. data/bin/crowdin-console +4 -4
  7. data/lib/crowdin-api/api-resources/dictionaries.rb +34 -0
  8. data/lib/crowdin-api/api-resources/distributions.rb +99 -0
  9. data/lib/crowdin-api/api-resources/glossaries.rb +217 -0
  10. data/lib/crowdin-api/api-resources/labels.rb +117 -0
  11. data/lib/crowdin-api/api-resources/languages.rb +1 -0
  12. data/lib/crowdin-api/api-resources/machine_translation_engines.rb +74 -0
  13. data/lib/crowdin-api/api-resources/projects.rb +15 -1
  14. data/lib/crowdin-api/api-resources/reports.rb +138 -0
  15. data/lib/crowdin-api/api-resources/screenshots.rb +186 -0
  16. data/lib/crowdin-api/api-resources/source_files.rb +3 -2
  17. data/lib/crowdin-api/api-resources/storages.rb +5 -1
  18. data/lib/crowdin-api/api-resources/string_comments.rb +73 -0
  19. data/lib/crowdin-api/api-resources/string_translations.rb +220 -0
  20. data/lib/crowdin-api/api-resources/tasks.rb +113 -0
  21. data/lib/crowdin-api/api-resources/teams.rb +144 -0
  22. data/lib/crowdin-api/api-resources/translation_memory.rb +145 -0
  23. data/lib/crowdin-api/api-resources/translations.rb +8 -6
  24. data/lib/crowdin-api/api-resources/users.rb +129 -0
  25. data/lib/crowdin-api/api-resources/vendors.rb +21 -0
  26. data/lib/crowdin-api/api-resources/webhooks.rb +73 -0
  27. data/lib/crowdin-api/api-resources/workflows.rb +3 -0
  28. data/lib/crowdin-api/client/client.rb +41 -28
  29. data/lib/crowdin-api/client/configuration.rb +10 -6
  30. data/lib/crowdin-api/client/version.rb +1 -1
  31. data/lib/crowdin-api/core/errors.rb +2 -1
  32. data/lib/crowdin-api/core/{api_errors_raiser.rb → errors_raisers.rb} +21 -11
  33. data/lib/crowdin-api/core/request.rb +8 -5
  34. data/lib/crowdin-api/core/utils.rb +10 -0
  35. data/lib/crowdin-api.rb +22 -6
  36. data/spec/client/client-instance_spec.rb +14 -0
  37. data/spec/{core/config-instance_spec.rb → client/configuration-instance_spec.rb} +7 -7
  38. metadata +21 -5
  39. data/spec/crowdin-api_spec.rb +0 -7
@@ -0,0 +1,129 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Users
6
+ def get_authenticated_user
7
+ request = Web::Request.new(
8
+ self,
9
+ :get,
10
+ '/user'
11
+ )
12
+
13
+ request.perform
14
+ end
15
+
16
+ def list_project_members(query = {}, project_id = config.project_id)
17
+ project_id || raise_project_id_is_required_error
18
+
19
+ request = Web::Request.new(
20
+ self,
21
+ :get,
22
+ "/projects/#{project_id}/members",
23
+ query
24
+ )
25
+
26
+ request.perform
27
+ end
28
+
29
+ def get_member_info(member_id = nil, project_id = config.project_id)
30
+ member_id || raise_parameter_is_required_error(:member_id)
31
+ project_id || raise_project_id_is_required_error
32
+
33
+ request = Web::Request.new(
34
+ self,
35
+ :get,
36
+ "/projects/#{project_id}/members/#{member_id}"
37
+ )
38
+
39
+ request.perform
40
+ end
41
+
42
+ # -- For Enterprise mode only --
43
+
44
+ def add_project_member(query = {}, project_id = config.project_id)
45
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
46
+ project_id || raise_project_id_is_required_error
47
+
48
+ request = Web::Request.new(
49
+ self,
50
+ :post,
51
+ "/projects/#{project_id}/members",
52
+ query
53
+ )
54
+
55
+ request.perform
56
+ end
57
+
58
+ def get_project_member_permissions(member_id = nil, project_id = config.project_id)
59
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
60
+ member_id || raise_parameter_is_required_error(:member_id)
61
+ project_id || raise_project_id_is_required_error
62
+
63
+ request = Web::Request.new(
64
+ self,
65
+ :get,
66
+ "/projects/#{project_id}/members/#{member_id}"
67
+ )
68
+
69
+ request.perform
70
+ end
71
+
72
+ def replace_project_permissions(member_id = nil, query = {}, project_id = config.project_id)
73
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
74
+ member_id || raise_parameter_is_required_error(:member_id)
75
+ project_id || raise_project_id_is_required_error
76
+
77
+ request = Web::Request.new(
78
+ self,
79
+ :put,
80
+ "/projects/#{project_id}/members/#{member_id}",
81
+ query
82
+ )
83
+
84
+ request.perform
85
+ end
86
+
87
+ def delete_member_from_project(member_id = nil, query = {}, project_id = config.project_id)
88
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
89
+ member_id || raise_parameter_is_required_error(:member_id)
90
+ project_id || raise_project_id_is_required_error
91
+
92
+ request = Web::Request.new(
93
+ self,
94
+ :delete,
95
+ "/projects/#{project_id}/members/#{member_id}",
96
+ query
97
+ )
98
+
99
+ request.perform
100
+ end
101
+
102
+ def list_users(query = {})
103
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
104
+
105
+ request = Web::Request.new(
106
+ self,
107
+ :get,
108
+ '/users',
109
+ query
110
+ )
111
+
112
+ request.perform
113
+ end
114
+
115
+ def get_user(user_id = nil)
116
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
117
+ user_id || raise_parameter_is_required_error(:user_id)
118
+
119
+ request = Web::Request.new(
120
+ self,
121
+ :get,
122
+ "/users/#{user_id}"
123
+ )
124
+
125
+ request.perform
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ # -- For Enterprise mode only --
6
+ module Vendors
7
+ def list_vendors(query = {})
8
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
9
+
10
+ request = Web::Request.new(
11
+ self,
12
+ :get,
13
+ '/vendors',
14
+ query
15
+ )
16
+
17
+ request.perform
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Webhooks
6
+ def list_webhooks(query = {}, project_id = config.project_id)
7
+ project_id || raise_project_id_is_required_error
8
+
9
+ request = Web::Request.new(
10
+ self,
11
+ :get,
12
+ "/projects/#{project_id}/webhooks",
13
+ query
14
+ )
15
+
16
+ request.perform
17
+ end
18
+
19
+ def add_webhook(query = {}, project_id = config.project_id)
20
+ project_id || raise_project_id_is_required_error
21
+
22
+ request = Web::Request.new(
23
+ self,
24
+ :post,
25
+ "/projects/#{project_id}/webhooks",
26
+ query
27
+ )
28
+
29
+ request.perform
30
+ end
31
+
32
+ def get_webhook(webhook_id = nil, project_id = config.project_id)
33
+ webhook_id || raise_parameter_is_required_error(:webhook_id)
34
+ project_id || raise_project_id_is_required_error
35
+
36
+ request = Web::Request.new(
37
+ self,
38
+ :get,
39
+ "/projects/#{project_id}/webhooks/#{webhook_id}"
40
+ )
41
+
42
+ request.perform
43
+ end
44
+
45
+ def delete_webhook(webhook_id = nil, project_id = config.project_id)
46
+ webhook_id || raise_parameter_is_required_error(:webhook_id)
47
+ project_id || raise_project_id_is_required_error
48
+
49
+ request = Web::Request.new(
50
+ self,
51
+ :delete,
52
+ "/projects/#{project_id}/webhooks/#{webhook_id}"
53
+ )
54
+
55
+ request.perform
56
+ end
57
+
58
+ def edit_screenshot(webhook_id = nil, query = {}, project_id = config.project_id)
59
+ webhook_id || raise_parameter_is_required_error(:webhook_id)
60
+ project_id || raise_project_id_is_required_error
61
+
62
+ request = Web::Request.new(
63
+ self,
64
+ :patch,
65
+ "/projects/#{project_id}/webhooks/#{webhook_id}",
66
+ query
67
+ )
68
+
69
+ request.perform
70
+ end
71
+ end
72
+ end
73
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Crowdin
4
4
  module ApiResources
5
+ # -- For Enterprise mode only --
5
6
  module Workflows
6
7
  def list_workflow_steps(query = {}, project_id = config.project_id)
7
8
  config.enterprise_mode? || raise_only_for_enterprise_mode_error
@@ -32,6 +33,8 @@ module Crowdin
32
33
  end
33
34
 
34
35
  def list_workflow_templates(query = {})
36
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
37
+
35
38
  request = Web::Request.new(
36
39
  self,
37
40
  :get,
@@ -1,42 +1,50 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #
4
- # The Crowdin::Client library is used for interactions with a crowdin.com website.
4
+ # A wrapper and interface to the Crowdin API. Please visit the Crowdin developers site
5
+ # for a full explanation of what each of the Crowdin api methods expect and perform.
5
6
  #
6
- # == Example
7
- #
8
- # require 'crowdin-api'
9
- #
10
- # crowdin = Crowdin::Client.new do |config|
11
- # config.api_token = 'YOUR_API_TOKEN'
12
- # end
13
- #
14
- # crowdin.list_projects
7
+ # https://support.crowdin.com/api/v2/
8
+ # https://support.crowdin.com/enterprise/api/
15
9
  #
16
10
  module Crowdin
11
+ #
12
+ # === Example
13
+ #
14
+ # require 'crowdin-api'
15
+ #
16
+ # crowdin = Crowdin::Client.new do |config|
17
+ # config.api_token = 'YOUR_API_TOKEN'
18
+ # end
19
+ #
20
+ # crowdin.list_projects
21
+ #
17
22
  class Client
18
- # A wrapper and interface to the Crowdin api. Please visit the Crowdin developers
19
- # site for a full explanation of what each of the Crowdin api methods
20
- # expect and perform.
21
- #
22
- # https://support.crowdin.com/api/v2/
23
- #
24
- include ApiResources::Languages
25
- include ApiResources::Projects
26
- include ApiResources::SourceFiles
27
- include ApiResources::Storages
28
- include ApiResources::TranslationStatus
29
- include ApiResources::Translations
30
- include ApiResources::Workflows
31
- include ApiResources::SourceStrings
32
-
33
- include Errors::ApiErrorsRaiser
34
-
35
- attr_accessor :logger
23
+ extend Utils
24
+
25
+ # API Resources modules
26
+ API_RESOURCES_MODULES = %i[Storages Languages Projects Workflows SourceFiles Translations SourceStrings
27
+ StringTranslations StringComments Screenshots Glossaries TranslationMemory
28
+ MachineTranslationEngines Reports Tasks Users Teams Vendors Webhooks
29
+ Dictionaries Distributions Labels TranslationStatus].freeze
30
+
31
+ # Error Raisers modules
32
+ ERROR_RAISERS_MODULES = %i[ApiErrorsRaiser ClientErrorsRaiser].freeze
33
+
34
+ # Processing all API Resources modules to include them to the Client
35
+ API_RESOURCES_MODULES.each do |module_name|
36
+ Client.send(:include, fetch_module_full_name_from_string("Crowdin::ApiResources::#{module_name}"))
37
+ end
38
+
39
+ # Processing all Error Raisers modules to include them to the Client
40
+ ERROR_RAISERS_MODULES.each do |module_name|
41
+ Client.send(:include, fetch_module_full_name_from_string("Crowdin::Errors::#{module_name}"))
42
+ end
36
43
 
37
44
  attr_reader :config
38
45
  attr_reader :connection
39
46
  attr_reader :options
47
+ attr_reader :logger
40
48
 
41
49
  def initialize(&block)
42
50
  build_configuration(&block)
@@ -51,6 +59,11 @@ module Crowdin
51
59
  !config.logger_enabled? || logger.debug(message)
52
60
  end
53
61
 
62
+ def logger=(logger)
63
+ raise_logger_are_not_enabled_error unless config.logger_enabled?
64
+ @logger = logger
65
+ end
66
+
54
67
  private
55
68
 
56
69
  def build_configuration
@@ -9,8 +9,7 @@ module Crowdin
9
9
 
10
10
  attr_reader :target_api_url
11
11
 
12
- alias logger_enabled? enable_logger
13
- alias enterprise_mode? organization_domain
12
+ alias logger_enabled? enable_logger
14
13
 
15
14
  def initialize
16
15
  @target_api_url = '/api/v2'
@@ -20,16 +19,16 @@ module Crowdin
20
19
  {
21
20
  headers: {},
22
21
  timeout: nil,
23
- json: true
22
+ json: true
24
23
  }
25
24
  end
26
25
 
27
26
  def headers
28
27
  {
29
- 'Accept' => 'application/json',
28
+ 'Accept' => 'application/json',
30
29
  'Authorization' => "Bearer #{api_token}",
31
- 'Content-Type' => 'application/json',
32
- 'User-Agent' => "crowdin-rb/#{Crowdin::Client::VERSION}/#{RUBY_VERSION}/#{RUBY_PLATFORM}"
30
+ 'Content-Type' => 'application/json',
31
+ 'User-Agent' => "crowdin-rb/#{Crowdin::Client::VERSION}/#{RUBY_VERSION}/#{RUBY_PLATFORM}"
33
32
  }
34
33
  end
35
34
 
@@ -40,5 +39,10 @@ module Crowdin
40
39
  'https://api.crowdin.com'
41
40
  end
42
41
  end
42
+
43
+ def organization_domain?
44
+ !!organization_domain
45
+ end
46
+ alias enterprise_mode? organization_domain?
43
47
  end
44
48
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Crowdin
4
4
  class Client
5
- VERSION = '1.1.0'
5
+ VERSION = '1.2.1'
6
6
  end
7
7
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Crowdin
4
4
  module Errors
5
- class OnlyForEnterpriseMode < StandardError; end
5
+ class OnlyForEnterpriseModeError < StandardError; end
6
+ class LoggerAreNotEnabledError < StandardError; end
6
7
  end
7
8
  end
@@ -2,9 +2,29 @@
2
2
 
3
3
  module Crowdin
4
4
  module Errors
5
+ # Client errors raiser
6
+ module ClientErrorsRaiser
7
+ def raise_logger_are_not_enabled_error
8
+ raise(LoggerAreNotEnabledError, 'Logger are not enabled in your Client configuration, enable it ' \
9
+ 'before setting your own logger')
10
+ end
11
+ end
12
+
13
+ # Command-Line Client errors raiser
14
+ module ClcErrorsRaiser
15
+ def raise_api_token_is_required_error
16
+ raise(ArgumentError, '--api-token option is required')
17
+ end
18
+
19
+ def raise_organization_domain_is_required_error
20
+ raise(ArgumentError, '--organization-domain option is required for Enterprise mode')
21
+ end
22
+ end
23
+
24
+ # API errors raiser
5
25
  module ApiErrorsRaiser
6
26
  def raise_only_for_enterprise_mode_error
7
- raise(OnlyForEnterpriseMode, 'This method can be called only for Enterprise mode')
27
+ raise(OnlyForEnterpriseModeError, 'This method can be called only for Enterprise mode')
8
28
  end
9
29
 
10
30
  def raise_project_id_is_required_error
@@ -14,16 +34,6 @@ module Crowdin
14
34
  def raise_parameter_is_required_error(parameter)
15
35
  raise(ArgumentError, ":#{parameter} is required")
16
36
  end
17
-
18
- # crowdin-console errors
19
-
20
- def raise_api_token_is_required_error
21
- raise(ArgumentError, '--api-token option is required')
22
- end
23
-
24
- def raise_organization_domain_is_required_error
25
- raise(ArgumentError, '--organization-domain option is required for Enterprise mode')
26
- end
27
37
  end
28
38
  end
29
39
  end
@@ -30,7 +30,7 @@ module Crowdin
30
30
  rescue StandardError => error
31
31
  client.log! error
32
32
 
33
- @errors << "Something went wrong while proccessing request. Details - #{error.class}"
33
+ @errors << "Something went wrong while request proccessing. Details - #{error.class}"
34
34
  end
35
35
 
36
36
  def process_response!
@@ -55,7 +55,7 @@ module Crowdin
55
55
  rescue StandardError => error
56
56
  client.log! error
57
57
 
58
- @errors << "Something went wrong while proccessing response. Details - #{error.class}"
58
+ @errors << "Something went wrong while response proccessing. Details - #{error.class}"
59
59
 
60
60
  fetch_errors
61
61
  end
@@ -68,10 +68,13 @@ module Crowdin
68
68
  end
69
69
 
70
70
  def download_file(url)
71
- download = URI.parse(url).open
72
- IO.copy_stream(download, @destination)
71
+ download = URI.parse(url).open
72
+ destination = @destination || download.meta['content-disposition']
73
+ .match(/filename=("?)(.+)\1/)[2]
73
74
 
74
- @destination
75
+ IO.copy_stream(download, destination)
76
+
77
+ destination
75
78
  rescue StandardError => error
76
79
  client.log! error
77
80
 
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module Utils
5
+ # Method for extract module namespaces from a string
6
+ def fetch_module_full_name_from_string(string)
7
+ string.split('::').inject(Module) { |acc, val| acc.const_get(val) }
8
+ end
9
+ end
10
+ end
data/lib/crowdin-api.rb CHANGED
@@ -7,20 +7,36 @@ require 'rest-client'
7
7
 
8
8
  # Core modules
9
9
  require 'crowdin-api/core/errors'
10
- require 'crowdin-api/core/api_errors_raiser'
10
+ require 'crowdin-api/core/errors_raisers'
11
11
  require 'crowdin-api/core/request'
12
+ require 'crowdin-api/core/utils'
12
13
 
13
- # Api modules
14
+ # API modules
15
+ require 'crowdin-api/api-resources/storages'
14
16
  require 'crowdin-api/api-resources/languages'
15
17
  require 'crowdin-api/api-resources/projects'
18
+ require 'crowdin-api/api-resources/workflows'
16
19
  require 'crowdin-api/api-resources/source_files'
17
- require 'crowdin-api/api-resources/storages'
18
- require 'crowdin-api/api-resources/translation_status'
19
20
  require 'crowdin-api/api-resources/translations'
20
- require 'crowdin-api/api-resources/workflows'
21
21
  require 'crowdin-api/api-resources/source_strings'
22
+ require 'crowdin-api/api-resources/string_translations'
23
+ require 'crowdin-api/api-resources/string_comments'
24
+ require 'crowdin-api/api-resources/screenshots'
25
+ require 'crowdin-api/api-resources/glossaries'
26
+ require 'crowdin-api/api-resources/translation_memory'
27
+ require 'crowdin-api/api-resources/machine_translation_engines'
28
+ require 'crowdin-api/api-resources/reports'
29
+ require 'crowdin-api/api-resources/tasks'
30
+ require 'crowdin-api/api-resources/users'
31
+ require 'crowdin-api/api-resources/teams'
32
+ require 'crowdin-api/api-resources/vendors'
33
+ require 'crowdin-api/api-resources/webhooks'
34
+ require 'crowdin-api/api-resources/dictionaries'
35
+ require 'crowdin-api/api-resources/distributions'
36
+ require 'crowdin-api/api-resources/labels'
37
+ require 'crowdin-api/api-resources/translation_status'
22
38
 
23
- # Client
39
+ # Client modules
24
40
  require 'crowdin-api/client/version'
25
41
  require 'crowdin-api/client/configuration'
26
42
  require 'crowdin-api/client/client'
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe 'Config instance' do
4
+ before do
5
+ @crowdin = Crowdin::Client.new do |config|
6
+ config.api_token = 'api_token'
7
+ config.project_id = 1
8
+ end
9
+ end
10
+
11
+ it 'should have a version' do
12
+ expect(Crowdin::Client::VERSION).to_not be_nil
13
+ end
14
+ end
@@ -8,7 +8,7 @@ describe 'Config instance' do
8
8
  end
9
9
  end
10
10
 
11
- it 'show have a #project_id' do
11
+ it 'should have a #project_id' do
12
12
  expect(@crowdin.config.project_id).to_not be_nil
13
13
  end
14
14
 
@@ -16,12 +16,12 @@ describe 'Config instance' do
16
16
  expect(@crowdin.config.api_token).to_not be_nil
17
17
  end
18
18
 
19
- it '#target_api_url should equal /api/v2 by default' do
19
+ it '#target_api_url should equal \'api/v2\' by default' do
20
20
  expect(@crowdin.config.target_api_url).to eq('/api/v2')
21
21
  end
22
22
 
23
23
  describe '#logger_enabled?' do
24
- it 'should be false by default' do
24
+ it 'should equal false by default' do
25
25
  expect(@crowdin.config.logger_enabled?).to be_falsey
26
26
  end
27
27
 
@@ -35,11 +35,11 @@ describe 'Config instance' do
35
35
  end
36
36
 
37
37
  describe '#enterprise_mode?' do
38
- it 'should be false by default' do
38
+ it 'should equal false by default' do
39
39
  expect(@crowdin.config.enterprise_mode?).to be_falsey
40
40
  end
41
41
 
42
- it 'should equal specified arguments' do
42
+ it 'should equal true if user specify organization domain' do
43
43
  @crowdin = Crowdin::Client.new do |config|
44
44
  config.organization_domain = 'organization_domain'
45
45
  end
@@ -49,7 +49,7 @@ describe 'Config instance' do
49
49
  end
50
50
 
51
51
  describe '#base_url' do
52
- it 'should equal https://api.crowdin.com by default' do
52
+ it 'should equal \'https://api.crowdin.com\' by default' do
53
53
  expect(@crowdin.config.base_url).to eq('https://api.crowdin.com')
54
54
  end
55
55
 
@@ -61,7 +61,7 @@ describe 'Config instance' do
61
61
  expect(@crowdin.config.base_url).to eq('https://organization_domain.api.crowdin.com')
62
62
  end
63
63
 
64
- it 'should equal full specified organization domain when user specify full url (with .com)' do
64
+ it 'should equal full specified organization domain when user specify full url (with \'.com\')' do
65
65
  @crowdin = Crowdin::Client.new do |config|
66
66
  config.organization_domain = 'organization_domain.com'
67
67
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crowdin-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Crowdin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-14 00:00:00.000000000 Z
11
+ date: 2022-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: open-uri
@@ -185,22 +185,38 @@ files:
185
185
  - bin/setup
186
186
  - crowdin-api.gemspec
187
187
  - lib/crowdin-api.rb
188
+ - lib/crowdin-api/api-resources/dictionaries.rb
189
+ - lib/crowdin-api/api-resources/distributions.rb
190
+ - lib/crowdin-api/api-resources/glossaries.rb
191
+ - lib/crowdin-api/api-resources/labels.rb
188
192
  - lib/crowdin-api/api-resources/languages.rb
193
+ - lib/crowdin-api/api-resources/machine_translation_engines.rb
189
194
  - lib/crowdin-api/api-resources/projects.rb
195
+ - lib/crowdin-api/api-resources/reports.rb
196
+ - lib/crowdin-api/api-resources/screenshots.rb
190
197
  - lib/crowdin-api/api-resources/source_files.rb
191
198
  - lib/crowdin-api/api-resources/source_strings.rb
192
199
  - lib/crowdin-api/api-resources/storages.rb
200
+ - lib/crowdin-api/api-resources/string_comments.rb
201
+ - lib/crowdin-api/api-resources/string_translations.rb
202
+ - lib/crowdin-api/api-resources/tasks.rb
203
+ - lib/crowdin-api/api-resources/teams.rb
204
+ - lib/crowdin-api/api-resources/translation_memory.rb
193
205
  - lib/crowdin-api/api-resources/translation_status.rb
194
206
  - lib/crowdin-api/api-resources/translations.rb
207
+ - lib/crowdin-api/api-resources/users.rb
208
+ - lib/crowdin-api/api-resources/vendors.rb
209
+ - lib/crowdin-api/api-resources/webhooks.rb
195
210
  - lib/crowdin-api/api-resources/workflows.rb
196
211
  - lib/crowdin-api/client/client.rb
197
212
  - lib/crowdin-api/client/configuration.rb
198
213
  - lib/crowdin-api/client/version.rb
199
- - lib/crowdin-api/core/api_errors_raiser.rb
200
214
  - lib/crowdin-api/core/errors.rb
215
+ - lib/crowdin-api/core/errors_raisers.rb
201
216
  - lib/crowdin-api/core/request.rb
202
- - spec/core/config-instance_spec.rb
203
- - spec/crowdin-api_spec.rb
217
+ - lib/crowdin-api/core/utils.rb
218
+ - spec/client/client-instance_spec.rb
219
+ - spec/client/configuration-instance_spec.rb
204
220
  - spec/spec_helper.rb
205
221
  homepage: https://github.com/crowdin/crowdin-api-client-ruby
206
222
  licenses:
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Crowdin::Client do
4
- it 'should have a version' do
5
- expect(Crowdin::Client::VERSION).to_not be_nil
6
- end
7
- end