uploadcare-ruby 1.2.2 → 2.0.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.
- checksums.yaml +5 -5
- data/.gitignore +1 -1
- data/.rspec +1 -0
- data/.travis.yml +19 -5
- data/CHANGELOG.md +12 -30
- data/README.md +149 -72
- data/Rakefile +1 -1
- data/UPGRADE_NOTES.md +36 -0
- data/lib/uploadcare.rb +16 -22
- data/lib/uploadcare/api.rb +3 -1
- data/lib/uploadcare/api/file_list_api.rb +15 -4
- data/lib/uploadcare/api/file_storage_api.rb +34 -0
- data/lib/uploadcare/api/group_list_api.rb +13 -4
- data/lib/uploadcare/api/raw_api.rb +10 -16
- data/lib/uploadcare/api/uploading_api.rb +45 -84
- data/lib/uploadcare/api/uploading_api/upload_params.rb +72 -0
- data/lib/uploadcare/api/validators/file_list_options_validator.rb +73 -0
- data/lib/uploadcare/api/validators/group_list_options_validator.rb +49 -0
- data/lib/uploadcare/resources/file_list.rb +6 -33
- data/lib/uploadcare/resources/group_list.rb +6 -23
- data/lib/uploadcare/resources/resource_list.rb +83 -0
- data/lib/uploadcare/rest/connections/api_connection.rb +25 -3
- data/lib/uploadcare/rest/connections/upload_connection.rb +3 -2
- data/lib/uploadcare/version.rb +1 -1
- data/spec/api/file_list_api_spec.rb +95 -0
- data/spec/api/file_storage_api_spec.rb +88 -0
- data/spec/api/group_list_api_spec.rb +59 -0
- data/spec/api/raw_api_spec.rb +12 -12
- data/spec/api/uploading_api/upload_params_spec.rb +99 -0
- data/spec/api/uploading_api_spec.rb +59 -0
- data/spec/resources/file_list_spec.rb +13 -52
- data/spec/resources/file_spec.rb +6 -3
- data/spec/resources/group_list_spec.rb +15 -20
- data/spec/rest/api_connection_spec.rb +1 -1
- data/spec/shared/resource_list.rb +188 -0
- data/spec/spec_helper.rb +11 -1
- data/spec/uploadcare_spec.rb +9 -32
- data/spec/utils/parser_spec.rb +34 -36
- data/uploadcare-ruby.gemspec +7 -6
- metadata +52 -37
- data/lib/uploadcare/utils/user_agent.rb +0 -44
- data/spec/uploading/uploading_multiple_spec.rb +0 -43
- data/spec/uploading/uploading_spec.rb +0 -40
- data/spec/utils/user_agent_spec.rb +0 -46
@@ -1,44 +0,0 @@
|
|
1
|
-
module Uploadcare
|
2
|
-
# Determines User-Agent string either taking it from settings or building
|
3
|
-
# in accordance with common Uploadcare format
|
4
|
-
#
|
5
|
-
class UserAgent
|
6
|
-
# @param options [Hash]
|
7
|
-
# @option options [String] :user_agent (nil)
|
8
|
-
# @option options [String] :public_key (nil)
|
9
|
-
# @option options [String] :user_agent_environment (nil)
|
10
|
-
# @return [String]
|
11
|
-
#
|
12
|
-
def call(options)
|
13
|
-
return options[:user_agent].to_s if options[:user_agent]
|
14
|
-
|
15
|
-
user_agent_string(
|
16
|
-
options.fetch(:public_key, nil),
|
17
|
-
options.fetch(:user_agent_environment, {})
|
18
|
-
)
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def user_agent_string(public_key, extensions)
|
24
|
-
format(
|
25
|
-
'%<library>s/%<pubkey>s (%<environment>s)',
|
26
|
-
library: versioned('UploadcareRuby', Uploadcare::VERSION),
|
27
|
-
pubkey: public_key,
|
28
|
-
environment: environment_string(extensions)
|
29
|
-
)
|
30
|
-
end
|
31
|
-
|
32
|
-
def environment_string(extensions)
|
33
|
-
[
|
34
|
-
versioned('Ruby', Gem.ruby_version),
|
35
|
-
versioned(extensions[:framework_name], extensions[:framework_version]),
|
36
|
-
versioned(extensions[:extension_name], extensions[:extension_version])
|
37
|
-
].compact.join('; ')
|
38
|
-
end
|
39
|
-
|
40
|
-
def versioned(name, version = nil)
|
41
|
-
name ? [name, version].compact.join('/') : nil
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'uri'
|
3
|
-
require 'socket'
|
4
|
-
|
5
|
-
describe Uploadcare::Api do
|
6
|
-
before :all do
|
7
|
-
@api = API
|
8
|
-
@files_ary = FILES_ARY
|
9
|
-
end
|
10
|
-
|
11
|
-
it "it should upload multiple files" do
|
12
|
-
expect {files = @api.upload @files_ary}.to_not raise_error
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should retunrn an array of files" do
|
16
|
-
files = @api.upload @files_ary
|
17
|
-
files.should be_kind_of(Array)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "each in array should be UC file object" do
|
21
|
-
files = @api.upload @files_ary
|
22
|
-
files.each do |f|
|
23
|
-
f.should be_kind_of(Uploadcare::Api::File)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
it "each in array should have valid UUID" do
|
28
|
-
files = @api.upload @files_ary
|
29
|
-
files.each do |f|
|
30
|
-
f.should respond_to(:uuid)
|
31
|
-
f.uuid.should match(UUID_REGEX)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
it "each in array should load data for uploaded file" do
|
36
|
-
files = @api.upload @files_ary
|
37
|
-
files.each do |f|
|
38
|
-
f.should respond_to(:load_data)
|
39
|
-
expect {f.load_data}.to_not raise_error
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'uri'
|
3
|
-
require 'socket'
|
4
|
-
|
5
|
-
describe Uploadcare::Api do
|
6
|
-
before :all do
|
7
|
-
@api = API
|
8
|
-
@file = FILE1
|
9
|
-
@url = IMAGE_URL
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'should upload file or url' do
|
13
|
-
file = @api.upload @file
|
14
|
-
file.should be_an_instance_of Uploadcare::Api::File
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should raise an error when neither file nor url given' do
|
18
|
-
expect { @api.upload 12 }.to raise_error
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'should upload file' do
|
22
|
-
file = @api.upload @file
|
23
|
-
file.should be_an_instance_of Uploadcare::Api::File
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'should upload from url' do
|
27
|
-
file = @api.upload @url
|
28
|
-
file.should be_an_instance_of Uploadcare::Api::File
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'should not upload from invalid url' do
|
32
|
-
expect { @api.upload 'not.url.' }.to raise_error
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'uploaded file should have valid UUID' do
|
36
|
-
file = @api.upload @url
|
37
|
-
file.should be_an_instance_of Uploadcare::Api::File
|
38
|
-
file.uuid.should match UUID_REGEX
|
39
|
-
end
|
40
|
-
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
|