uploadcare-ruby 2.1.2 → 3.0.3

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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +20 -0
  3. data/.github/workflows/ruby.yml +52 -0
  4. data/.gitignore +13 -6
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +20 -0
  7. data/.yardopts +4 -0
  8. data/CHANGELOG.md +24 -51
  9. data/DEVELOPMENT.md +18 -0
  10. data/Gemfile +2 -0
  11. data/LICENSE +1 -1
  12. data/README.md +164 -578
  13. data/Rakefile +5 -5
  14. data/bin/console +15 -0
  15. data/bin/setup +8 -0
  16. data/lib/uploadcare.rb +36 -32
  17. data/lib/uploadcare/api/api.rb +25 -0
  18. data/lib/uploadcare/client/file_client.rb +44 -0
  19. data/lib/uploadcare/client/file_list_client.rb +46 -0
  20. data/lib/uploadcare/client/group_client.rb +45 -0
  21. data/lib/uploadcare/client/multipart_upload/chunks_client.rb +46 -0
  22. data/lib/uploadcare/client/multipart_upload_client.rb +62 -0
  23. data/lib/uploadcare/client/project_client.rb +18 -0
  24. data/lib/uploadcare/client/rest_client.rb +73 -0
  25. data/lib/uploadcare/client/rest_group_client.rb +23 -0
  26. data/lib/uploadcare/client/upload_client.rb +35 -0
  27. data/lib/uploadcare/client/uploader_client.rb +93 -0
  28. data/lib/uploadcare/client/webhook_client.rb +43 -0
  29. data/lib/uploadcare/concern/error_handler.rb +54 -0
  30. data/lib/uploadcare/concern/throttle_handler.rb +25 -0
  31. data/lib/uploadcare/concern/upload_error_handler.rb +32 -0
  32. data/lib/uploadcare/entity/decorator/paginator.rb +81 -0
  33. data/lib/uploadcare/entity/entity.rb +18 -0
  34. data/lib/uploadcare/entity/file.rb +81 -0
  35. data/lib/uploadcare/entity/file_list.rb +30 -0
  36. data/lib/uploadcare/entity/group.rb +41 -0
  37. data/lib/uploadcare/entity/group_list.rb +24 -0
  38. data/lib/uploadcare/entity/project.rb +13 -0
  39. data/lib/uploadcare/entity/uploader.rb +73 -0
  40. data/lib/uploadcare/entity/webhook.rb +14 -0
  41. data/lib/uploadcare/exception/request_error.rb +9 -0
  42. data/lib/uploadcare/exception/throttle_error.rb +14 -0
  43. data/lib/uploadcare/param/authentication_header.rb +25 -0
  44. data/lib/uploadcare/param/param.rb +10 -0
  45. data/lib/uploadcare/param/secure_auth_header.rb +37 -0
  46. data/lib/uploadcare/param/simple_auth_header.rb +14 -0
  47. data/lib/uploadcare/param/upload/signature_generator.rb +24 -0
  48. data/lib/uploadcare/param/upload/upload_params_generator.rb +23 -0
  49. data/lib/uploadcare/param/user_agent.rb +21 -0
  50. data/lib/uploadcare/ruby/version.rb +5 -0
  51. data/uploadcare-ruby.gemspec +50 -37
  52. metadata +98 -113
  53. data/.travis.yml +0 -26
  54. data/UPGRADE_NOTES.md +0 -36
  55. data/lib/uploadcare/api.rb +0 -26
  56. data/lib/uploadcare/api/file_api.rb +0 -7
  57. data/lib/uploadcare/api/file_list_api.rb +0 -19
  58. data/lib/uploadcare/api/file_storage_api.rb +0 -34
  59. data/lib/uploadcare/api/group_api.rb +0 -38
  60. data/lib/uploadcare/api/group_list_api.rb +0 -17
  61. data/lib/uploadcare/api/project_api.rb +0 -9
  62. data/lib/uploadcare/api/raw_api.rb +0 -38
  63. data/lib/uploadcare/api/uploading_api.rb +0 -71
  64. data/lib/uploadcare/api/uploading_api/upload_params.rb +0 -72
  65. data/lib/uploadcare/api/validators/file_list_options_validator.rb +0 -73
  66. data/lib/uploadcare/api/validators/group_list_options_validator.rb +0 -49
  67. data/lib/uploadcare/errors/errors.rb +0 -64
  68. data/lib/uploadcare/resources/file.rb +0 -164
  69. data/lib/uploadcare/resources/file_list.rb +0 -14
  70. data/lib/uploadcare/resources/group.rb +0 -115
  71. data/lib/uploadcare/resources/group_list.rb +0 -14
  72. data/lib/uploadcare/resources/project.rb +0 -13
  73. data/lib/uploadcare/resources/resource_list.rb +0 -83
  74. data/lib/uploadcare/rest/auth/auth.rb +0 -31
  75. data/lib/uploadcare/rest/auth/secure.rb +0 -43
  76. data/lib/uploadcare/rest/auth/simple.rb +0 -16
  77. data/lib/uploadcare/rest/connections/api_connection.rb +0 -53
  78. data/lib/uploadcare/rest/connections/upload_connection.rb +0 -22
  79. data/lib/uploadcare/rest/middlewares/auth_middleware.rb +0 -24
  80. data/lib/uploadcare/rest/middlewares/parse_json_middleware.rb +0 -33
  81. data/lib/uploadcare/rest/middlewares/raise_error_middleware.rb +0 -21
  82. data/lib/uploadcare/utils/parser.rb +0 -71
  83. data/lib/uploadcare/utils/user_agent.rb +0 -44
  84. data/lib/uploadcare/version.rb +0 -3
  85. data/spec/api/file_list_api_spec.rb +0 -95
  86. data/spec/api/file_storage_api_spec.rb +0 -88
  87. data/spec/api/group_list_api_spec.rb +0 -59
  88. data/spec/api/raw_api_spec.rb +0 -25
  89. data/spec/api/uploading_api/upload_params_spec.rb +0 -99
  90. data/spec/api/uploading_api_spec.rb +0 -59
  91. data/spec/resources/file_list_spec.rb +0 -25
  92. data/spec/resources/file_spec.rb +0 -223
  93. data/spec/resources/group_list_spec.rb +0 -25
  94. data/spec/resources/group_spec.rb +0 -101
  95. data/spec/resources/operations_spec.rb +0 -59
  96. data/spec/resources/project_spec.rb +0 -21
  97. data/spec/rest/api_connection_spec.rb +0 -68
  98. data/spec/rest/auth/secure_spec.rb +0 -66
  99. data/spec/rest/auth/simple_spec.rb +0 -31
  100. data/spec/rest/errors_spec.rb +0 -75
  101. data/spec/rest/upload_connection_spec.rb +0 -19
  102. data/spec/shared/resource_list.rb +0 -188
  103. data/spec/spec_helper.rb +0 -54
  104. data/spec/uploadcare_spec.rb +0 -43
  105. data/spec/utils/parser_spec.rb +0 -85
  106. data/spec/utils/user_agent_spec.rb +0 -46
  107. data/spec/view.png +0 -0
  108. data/spec/view2.jpg +0 -0
data/spec/spec_helper.rb DELETED
@@ -1,54 +0,0 @@
1
- $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
2
- $LOAD_PATH << File.join(File.dirname(__FILE__))
3
-
4
- require 'rubygems'
5
- require 'pry'
6
- require 'rspec'
7
- require 'uploadcare'
8
- require 'yaml'
9
-
10
- require 'coveralls'
11
- Coveralls.wear!
12
-
13
- CONFIG = Uploadcare.default_settings.merge!(
14
- public_key: ENV['UPLOADCARE_PUBLIC_KEY'] || 'demopublickey',
15
- private_key: ENV['UPLOADCARE_SECRET_KEY'] || 'demoprivatekey',
16
- )
17
- UUID_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
18
-
19
- API = Uploadcare::Api.new(CONFIG)
20
- IMAGE_URL = "http://macaw.co/images/macaw-logo.png"
21
-
22
- FILE1 = File.open(File.join(File.dirname(__FILE__), 'view.png'))
23
- FILE2 = File.open(File.join(File.dirname(__FILE__), 'view2.jpg'))
24
- FILES_ARY = [FILE1, FILE2]
25
-
26
-
27
- config_file = File.join(File.dirname(__FILE__), 'config.yml')
28
- if File.exists?(config_file)
29
- CONFIG.update Hash[YAML.parse_file(config_file).to_ruby.map{|a, b| [a.to_sym, b]}]
30
- end
31
-
32
- if CONFIG[:public_key] == 'demopublickey'
33
- RSpec.configure do |c|
34
- c.before(:example, :payed_feature){ skip "Unavailable for demo account" }
35
- end
36
- end
37
-
38
- Dir[File.join(File.dirname(__FILE__), 'shared/*.rb')].each{|path| require path}
39
-
40
- def retry_if(error, retries=10, &block)
41
- block.call
42
- rescue error
43
- raise if retries <= 0
44
- sleep 0.2
45
- retry_if(error, retries-1, &block)
46
- end
47
-
48
- def wait_until_ready(file)
49
- unless file.is_ready
50
- sleep 0.2
51
- file.load_data!
52
- wait_until_ready(file)
53
- end
54
- end
@@ -1,43 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Uploadcare do
4
- around do |example|
5
- orig_stderr = $stderr
6
- $stderr = StringIO.new
7
-
8
- example.call
9
-
10
- $stderr = orig_stderr
11
- end
12
-
13
- describe '::user_agent' do
14
- subject(:user_agent) { described_class.user_agent(options) }
15
- let(:options) { {user_agent: 'user/agent'} }
16
- let(:user_agent_builder) { instance_double('Uploadcare::UserAgent') }
17
-
18
- it 'returns user agent string' do
19
- allow(Uploadcare::UserAgent).to receive(:new) { user_agent_builder }
20
- expect(user_agent_builder).to receive(:call).with(options) { 'user/agent' }
21
-
22
- expect(user_agent).to eq('user/agent')
23
- end
24
-
25
- it 'is deprecated' do
26
- user_agent
27
-
28
- $stderr.rewind
29
- expect($stderr.string).to start_with('[DEPRECATION] `Uploadcare::user_agent`')
30
- end
31
- end
32
-
33
- describe '::USER_AGENT' do
34
- it { expect(described_class::USER_AGENT).not_to be_nil }
35
-
36
- it 'is deprecated' do
37
- described_class::USER_AGENT
38
-
39
- $stderr.rewind
40
- expect($stderr.string).to start_with('[DEPRECATION] `Uploadcare::USER_AGENT`')
41
- end
42
- end
43
- end
@@ -1,85 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Uploadcare::Parser do
4
- before :all do
5
- # https://ucarecdn.com/be4e24fb-2cad-476f-9417-ba95e3fefbf2~3/-/crop/123/-/fromat/png/
6
- @uuid = "be4e24fb-2cad-476f-9417-ba95e3fefbf2"
7
- @count = "12"
8
- @operations = "-/crop/123/-/fromat/png/"
9
- end
10
-
11
- it "should parse file uuid string" do
12
- string = "#{@uuid}"
13
-
14
- parsed = Uploadcare::Parser.parse(string)
15
-
16
- expect(parsed).to be_kind_of(Uploadcare::Parser::File)
17
- expect(parsed.uuid).to eq @uuid
18
- expect(parsed.count).to be_nil
19
- expect(parsed.operations).to be_kind_of(Array)
20
- expect(parsed.operations).to be_empty
21
- end
22
-
23
- it "should parse file cdn string without operations string" do
24
- string = "https://ucarecdn.com/#{@uuid}/"
25
-
26
- parsed = Uploadcare::Parser.parse(string)
27
-
28
- expect(parsed).to be_kind_of(Uploadcare::Parser::File)
29
- expect(parsed.uuid).to eq @uuid
30
- expect(parsed.count).to be_nil
31
- expect(parsed.operations).to be_kind_of(Array)
32
- expect(parsed.operations).to be_empty
33
- end
34
-
35
- it "should parse file cdn string with operations string" do
36
- string = "https://ucarecdn.com/#{@uuid}/#{@operations}"
37
-
38
- parsed = Uploadcare::Parser.parse(string)
39
-
40
- expect(parsed).to be_kind_of(Uploadcare::Parser::File)
41
- expect(parsed.uuid).to eq @uuid
42
- expect(parsed.count).to be_nil
43
- expect(parsed.operations).to be_kind_of(Array)
44
- expect(parsed.operations).not_to be_empty
45
- end
46
-
47
- it "should parse group uuid string" do
48
- string = "#{@uuid}~#{@count}"
49
-
50
- parsed = Uploadcare::Parser.parse(string)
51
-
52
- expect(parsed).to be_kind_of(Uploadcare::Parser::Group)
53
- expect(parsed.uuid).to eq "#{@uuid}~#{@count}"
54
- expect(parsed.count).not_to be_nil
55
- expect(parsed.count).to eq @count
56
- expect(parsed.operations).to be_kind_of(Array)
57
- expect(parsed.operations).to be_empty
58
- end
59
-
60
- it "should parse file cdn string without operations string" do
61
- string = "https://ucarecdn.com/#{@uuid}~#{@count}/"
62
-
63
- parsed = Uploadcare::Parser.parse(string)
64
-
65
- expect(parsed).to be_kind_of(Uploadcare::Parser::Group)
66
- expect(parsed.uuid).to eq "#{@uuid}~#{@count}"
67
- expect(parsed.count).not_to be_nil
68
- expect(parsed.count).to eq @count
69
- expect(parsed.operations).to be_kind_of(Array)
70
- expect(parsed.operations).to be_empty
71
- end
72
-
73
- it "should parse file cdn string with operations string" do
74
- string = "https://ucarecdn.com/#{@uuid}~#{@count}/#{@operations}"
75
-
76
- parsed = Uploadcare::Parser.parse(string)
77
-
78
- expect(parsed).to be_kind_of(Uploadcare::Parser::Group)
79
- expect(parsed.uuid).to eq "#{@uuid}~#{@count}"
80
- expect(parsed.count).not_to be_nil
81
- expect(parsed.count).to eq @count
82
- expect(parsed.operations).to be_kind_of(Array)
83
- expect(parsed.operations).not_to be_empty
84
- end
85
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Uploadcare::UserAgent do
4
- subject(:user_agent) { described_class.new.call(options) }
5
-
6
- before do
7
- stub_const('Uploadcare::VERSION', '123')
8
- allow(Gem).to receive(:ruby_version) { '456' }
9
- end
10
-
11
- context 'when user_agent option is set' do
12
- let(:options) do
13
- { user_agent: 'predefined user agent' }
14
- end
15
-
16
- it { is_expected.to eq('predefined user agent') }
17
- end
18
-
19
- context 'when user_agent_environment option is set' do
20
- let(:options) do
21
- {
22
- public_key: 'pubkey',
23
- user_agent_environment: {
24
- framework_name: 'rails',
25
- framework_version: '5.1.0',
26
- extension_name: 'UploadcareRails',
27
- extension_version: '1.1.0'
28
- }
29
- }
30
- end
31
-
32
- it do
33
- is_expected.to eq(
34
- 'UploadcareRuby/123/pubkey (Ruby/456; rails/5.1.0; UploadcareRails/1.1.0)'
35
- )
36
- end
37
- end
38
-
39
- context 'when user_agent_environment option is not set' do
40
- let(:options) do
41
- { public_key: 'pubkey' }
42
- end
43
-
44
- it { is_expected.to eq('UploadcareRuby/123/pubkey (Ruby/456)') }
45
- end
46
- end
data/spec/view.png DELETED
Binary file
data/spec/view2.jpg DELETED
Binary file