uploadcare-ruby 2.1.2 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/gem-push.yml +20 -0
- data/.github/workflows/ruby.yml +52 -0
- data/.gitignore +13 -6
- data/.rspec +2 -0
- data/.rubocop.yml +20 -0
- data/.yardopts +4 -0
- data/CHANGELOG.md +24 -51
- data/DEVELOPMENT.md +18 -0
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/README.md +164 -578
- data/Rakefile +5 -5
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/uploadcare.rb +36 -32
- data/lib/uploadcare/api/api.rb +25 -0
- data/lib/uploadcare/client/file_client.rb +44 -0
- data/lib/uploadcare/client/file_list_client.rb +46 -0
- data/lib/uploadcare/client/group_client.rb +45 -0
- data/lib/uploadcare/client/multipart_upload/chunks_client.rb +46 -0
- data/lib/uploadcare/client/multipart_upload_client.rb +62 -0
- data/lib/uploadcare/client/project_client.rb +18 -0
- data/lib/uploadcare/client/rest_client.rb +73 -0
- data/lib/uploadcare/client/rest_group_client.rb +23 -0
- data/lib/uploadcare/client/upload_client.rb +35 -0
- data/lib/uploadcare/client/uploader_client.rb +93 -0
- data/lib/uploadcare/client/webhook_client.rb +43 -0
- data/lib/uploadcare/concern/error_handler.rb +54 -0
- data/lib/uploadcare/concern/throttle_handler.rb +25 -0
- data/lib/uploadcare/concern/upload_error_handler.rb +32 -0
- data/lib/uploadcare/entity/decorator/paginator.rb +81 -0
- data/lib/uploadcare/entity/entity.rb +18 -0
- data/lib/uploadcare/entity/file.rb +81 -0
- data/lib/uploadcare/entity/file_list.rb +30 -0
- data/lib/uploadcare/entity/group.rb +41 -0
- data/lib/uploadcare/entity/group_list.rb +24 -0
- data/lib/uploadcare/entity/project.rb +13 -0
- data/lib/uploadcare/entity/uploader.rb +73 -0
- data/lib/uploadcare/entity/webhook.rb +14 -0
- data/lib/uploadcare/exception/request_error.rb +9 -0
- data/lib/uploadcare/exception/throttle_error.rb +14 -0
- data/lib/uploadcare/param/authentication_header.rb +25 -0
- data/lib/uploadcare/param/param.rb +10 -0
- data/lib/uploadcare/param/secure_auth_header.rb +37 -0
- data/lib/uploadcare/param/simple_auth_header.rb +14 -0
- data/lib/uploadcare/param/upload/signature_generator.rb +24 -0
- data/lib/uploadcare/param/upload/upload_params_generator.rb +23 -0
- data/lib/uploadcare/param/user_agent.rb +21 -0
- data/lib/uploadcare/ruby/version.rb +5 -0
- data/uploadcare-ruby.gemspec +50 -37
- metadata +98 -113
- data/.travis.yml +0 -26
- data/UPGRADE_NOTES.md +0 -36
- data/lib/uploadcare/api.rb +0 -26
- data/lib/uploadcare/api/file_api.rb +0 -7
- data/lib/uploadcare/api/file_list_api.rb +0 -19
- data/lib/uploadcare/api/file_storage_api.rb +0 -34
- data/lib/uploadcare/api/group_api.rb +0 -38
- data/lib/uploadcare/api/group_list_api.rb +0 -17
- data/lib/uploadcare/api/project_api.rb +0 -9
- data/lib/uploadcare/api/raw_api.rb +0 -38
- data/lib/uploadcare/api/uploading_api.rb +0 -71
- data/lib/uploadcare/api/uploading_api/upload_params.rb +0 -72
- data/lib/uploadcare/api/validators/file_list_options_validator.rb +0 -73
- data/lib/uploadcare/api/validators/group_list_options_validator.rb +0 -49
- data/lib/uploadcare/errors/errors.rb +0 -64
- data/lib/uploadcare/resources/file.rb +0 -164
- data/lib/uploadcare/resources/file_list.rb +0 -14
- data/lib/uploadcare/resources/group.rb +0 -115
- data/lib/uploadcare/resources/group_list.rb +0 -14
- data/lib/uploadcare/resources/project.rb +0 -13
- data/lib/uploadcare/resources/resource_list.rb +0 -83
- data/lib/uploadcare/rest/auth/auth.rb +0 -31
- data/lib/uploadcare/rest/auth/secure.rb +0 -43
- data/lib/uploadcare/rest/auth/simple.rb +0 -16
- data/lib/uploadcare/rest/connections/api_connection.rb +0 -53
- data/lib/uploadcare/rest/connections/upload_connection.rb +0 -22
- data/lib/uploadcare/rest/middlewares/auth_middleware.rb +0 -24
- data/lib/uploadcare/rest/middlewares/parse_json_middleware.rb +0 -33
- data/lib/uploadcare/rest/middlewares/raise_error_middleware.rb +0 -21
- data/lib/uploadcare/utils/parser.rb +0 -71
- data/lib/uploadcare/utils/user_agent.rb +0 -44
- data/lib/uploadcare/version.rb +0 -3
- data/spec/api/file_list_api_spec.rb +0 -95
- data/spec/api/file_storage_api_spec.rb +0 -88
- data/spec/api/group_list_api_spec.rb +0 -59
- data/spec/api/raw_api_spec.rb +0 -25
- data/spec/api/uploading_api/upload_params_spec.rb +0 -99
- data/spec/api/uploading_api_spec.rb +0 -59
- data/spec/resources/file_list_spec.rb +0 -25
- data/spec/resources/file_spec.rb +0 -223
- data/spec/resources/group_list_spec.rb +0 -25
- data/spec/resources/group_spec.rb +0 -101
- data/spec/resources/operations_spec.rb +0 -59
- data/spec/resources/project_spec.rb +0 -21
- data/spec/rest/api_connection_spec.rb +0 -68
- data/spec/rest/auth/secure_spec.rb +0 -66
- data/spec/rest/auth/simple_spec.rb +0 -31
- data/spec/rest/errors_spec.rb +0 -75
- data/spec/rest/upload_connection_spec.rb +0 -19
- data/spec/shared/resource_list.rb +0 -188
- data/spec/spec_helper.rb +0 -54
- data/spec/uploadcare_spec.rb +0 -43
- data/spec/utils/parser_spec.rb +0 -85
- data/spec/utils/user_agent_spec.rb +0 -46
- data/spec/view.png +0 -0
- 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
|
data/spec/uploadcare_spec.rb
DELETED
@@ -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
|
data/spec/utils/parser_spec.rb
DELETED
@@ -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
|