copy-ruby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +10 -0
- data/LICENSE +23 -0
- data/README.md +232 -0
- data/Rakefile +8 -0
- data/copy.gemspec +24 -0
- data/lib/copy.rb +85 -0
- data/lib/copy/base.rb +43 -0
- data/lib/copy/client.rb +70 -0
- data/lib/copy/file.rb +134 -0
- data/lib/copy/link.rb +52 -0
- data/lib/copy/operations/activity.rb +27 -0
- data/lib/copy/operations/all.rb +31 -0
- data/lib/copy/operations/base.rb +47 -0
- data/lib/copy/operations/create.rb +20 -0
- data/lib/copy/operations/delete.rb +25 -0
- data/lib/copy/operations/find.rb +21 -0
- data/lib/copy/operations/meta.rb +20 -0
- data/lib/copy/operations/show.rb +20 -0
- data/lib/copy/operations/update.rb +21 -0
- data/lib/copy/request/base.rb +41 -0
- data/lib/copy/request/connection.rb +120 -0
- data/lib/copy/request/helpers.rb +36 -0
- data/lib/copy/request/info.rb +41 -0
- data/lib/copy/request/validator.rb +53 -0
- data/lib/copy/revision.rb +25 -0
- data/lib/copy/session.rb +56 -0
- data/lib/copy/user.rb +24 -0
- data/lib/copy/version.rb +3 -0
- data/spec/copy/base_spec.rb +12 -0
- data/spec/copy/client_spec.rb +69 -0
- data/spec/copy/file_spec.rb +306 -0
- data/spec/copy/link_spec.rb +238 -0
- data/spec/copy/request/base_spec.rb +53 -0
- data/spec/copy/request/connection_spec.rb +73 -0
- data/spec/copy/request/info_spec.rb +27 -0
- data/spec/copy/request/validator_spec.rb +13 -0
- data/spec/copy/revision_spec.rb +42 -0
- data/spec/copy/user_spec.rb +119 -0
- data/spec/copy_spec.rb +52 -0
- data/spec/fixtures/hola.txt +1 -0
- data/spec/spec_helper.rb +12 -0
- metadata +170 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy::Request::Base do
|
4
|
+
let(:consumer_key) { '_your_consumen_key_' }
|
5
|
+
let(:consumer_secret) { '_your_consumen_secret_' }
|
6
|
+
let(:info) { double(:info, session: session ) }
|
7
|
+
let(:session) { double(:session, valid?: true ) }
|
8
|
+
let(:request_base) { Copy::Request::Base.new(info) }
|
9
|
+
let(:connection) { double(:connection) }
|
10
|
+
let(:validator) { double(:validator) }
|
11
|
+
|
12
|
+
before :each do
|
13
|
+
allow(Copy::Request::Connection).to receive(:new).and_return(connection)
|
14
|
+
allow(Copy::Request::Validator).to receive(:new).and_return(validator)
|
15
|
+
Copy.config do |configuration|
|
16
|
+
configuration[:consumer_key] = consumer_key
|
17
|
+
configuration[:consumer_secret] = consumer_secret
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#perform" do
|
22
|
+
it 'raises AuthenticationError if request is not valid' do
|
23
|
+
allow(request_base).to receive(:valid?).and_return(false)
|
24
|
+
expect{request_base.perform}.to raise_error{ Copy::AuthenticationError }
|
25
|
+
end
|
26
|
+
it "performs an https request" do
|
27
|
+
allow_any_instance_of(Copy::Request::Base).to receive(:valid?).and_return(true)
|
28
|
+
|
29
|
+
expect(connection).to receive(:set_request_data)
|
30
|
+
expect(connection).to receive(:request)
|
31
|
+
expect(validator).to receive(:validated_data_for)
|
32
|
+
|
33
|
+
Copy::Request::Base.new(nil).perform
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#valid?" do
|
38
|
+
it 'is not valid if no info object given' do
|
39
|
+
expect(Copy::Request::Base.new(nil)).to_not be_valid
|
40
|
+
end
|
41
|
+
it 'is not valid if there is no session in info object' do
|
42
|
+
allow(info).to receive(:session).and_return(nil)
|
43
|
+
expect(request_base).to_not be_valid
|
44
|
+
end
|
45
|
+
it 'is not valid if session is invalid' do
|
46
|
+
allow(session).to receive(:valid?).and_return(false)
|
47
|
+
expect(request_base).to_not be_valid
|
48
|
+
end
|
49
|
+
it 'id valid othercase' do
|
50
|
+
expect(request_base).to be_valid
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy::Request::Connection do
|
4
|
+
let(:consumer_key) { '_your_consumen_key_' }
|
5
|
+
let(:consumer_secret) { '_your_consumen_secret_' }
|
6
|
+
let(:access_token) do
|
7
|
+
{
|
8
|
+
token: '_your_user_token_',
|
9
|
+
secret: '_your_secret_token_'
|
10
|
+
}
|
11
|
+
end
|
12
|
+
let(:connection) { Copy::Request::Connection.new(info) }
|
13
|
+
let(:info) do
|
14
|
+
Copy::Request::Info.new(:get, nil, 'user', {}, { session: session })
|
15
|
+
end
|
16
|
+
let(:client) { Copy::Client.new(session) }
|
17
|
+
let(:session) { Copy::Session.new(access_token) }
|
18
|
+
|
19
|
+
before :each do
|
20
|
+
Copy.config do |configuration|
|
21
|
+
configuration[:consumer_key] = consumer_key
|
22
|
+
configuration[:consumer_secret] = consumer_secret
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#set_request_data" do
|
27
|
+
it "creates a request_data object" do
|
28
|
+
connection.set_request_data
|
29
|
+
|
30
|
+
expect(connection.request_data).to_not be_nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#request" do
|
35
|
+
it "performs the actual request" do
|
36
|
+
connection.set_request_data
|
37
|
+
connection.stub(:set_request_data)
|
38
|
+
|
39
|
+
connection.access_token.should_receive(:send).with(*connection.request_data)
|
40
|
+
|
41
|
+
connection.request
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "#request_data" do
|
46
|
+
it "correctly formats the form data" do
|
47
|
+
info = double(
|
48
|
+
http_method: :post,
|
49
|
+
url: "/some/path",
|
50
|
+
data: params,
|
51
|
+
subdomain: Copy::DOMAIN_BASE,
|
52
|
+
session: session
|
53
|
+
)
|
54
|
+
connection = Copy::Request::Connection.new(info)
|
55
|
+
connection.set_request_data
|
56
|
+
|
57
|
+
connection.request_data.should eq(
|
58
|
+
[ :post,
|
59
|
+
"https://api.copy.com/some/path",
|
60
|
+
"{\"email\":\"abc_abc.com\",\"event_types\":[\"user.created\",\"user.failed\",\"team.created\",\"documents.available\"]}",
|
61
|
+
{"X-Api-Version"=>"1"}
|
62
|
+
]
|
63
|
+
)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def params
|
68
|
+
{
|
69
|
+
email: "abc_abc.com",
|
70
|
+
event_types: ["user.created","user.failed", "team.created", "documents.available"]
|
71
|
+
}
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy::Request::Info do
|
4
|
+
describe "#url" do
|
5
|
+
it "constructs the url" do
|
6
|
+
info = Copy::Request::Info.new(:get, nil, "random", {id: 1} )
|
7
|
+
|
8
|
+
info.url.should =~ /random/
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#path_with_params" do
|
13
|
+
it "does nothing when no params" do
|
14
|
+
info = Copy::Request::Info.new(:get, nil, "random", nil)
|
15
|
+
path = "/path/to/someplace"
|
16
|
+
|
17
|
+
info.path_with_params(path, {}).should eq path
|
18
|
+
end
|
19
|
+
|
20
|
+
it "constructs the path with params" do
|
21
|
+
info = Copy::Request::Info.new(:get, nil, "random", nil)
|
22
|
+
path = "/path/to/someplace"
|
23
|
+
|
24
|
+
info.path_with_params(path, {random: "stuff"}).should eq "#{path}?random=stuff"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy::Request::Validator do
|
4
|
+
describe "#validated_data_for" do
|
5
|
+
it "validates the data" do
|
6
|
+
info = Copy::Request::Info.new(:get, nil, "random", OpenStruct.new(id: 1))
|
7
|
+
validator = Copy::Request::Validator.new info
|
8
|
+
response = OpenStruct.new(body: '{"response":"ok"}', code: 200)
|
9
|
+
|
10
|
+
validator.validated_data_for(response).should eq "response" => "ok"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy::Revision do
|
4
|
+
|
5
|
+
let(:valid_attributes) do
|
6
|
+
JSON.parse %{
|
7
|
+
{
|
8
|
+
"revision_id": "5000",
|
9
|
+
"modified_time": 1365543105,
|
10
|
+
"size": 12670,
|
11
|
+
"latest": true,
|
12
|
+
"conflict": false,
|
13
|
+
"id": "/copy/Big%20API%20Changes/API-Changes.md/@activity/@time:1365543105",
|
14
|
+
"type": "revision",
|
15
|
+
"creator": {
|
16
|
+
"user_id": "1381231",
|
17
|
+
"created_time": 1358175510,
|
18
|
+
"email": "thomashunter@example.com",
|
19
|
+
"first_name": "Thomas",
|
20
|
+
"last_name": "Hunter",
|
21
|
+
"confirmed": true
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
let (:revision) do
|
28
|
+
Copy::Revision.new(valid_attributes)
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#initialize" do
|
32
|
+
it 'initializes all attributes correctly' do
|
33
|
+
expect(revision.revision_id).to eql('5000')
|
34
|
+
expect(revision.id).to eql('/copy/Big%20API%20Changes/API-Changes.md/@activity/@time:1365543105')
|
35
|
+
expect(revision.size).to eql(12670)
|
36
|
+
expect(revision.latest).to eql(true)
|
37
|
+
expect(revision.creator.class).to eql(Copy::User)
|
38
|
+
expect(revision.creator.id).to eql('1381231')
|
39
|
+
expect(revision.creator.email).to eql('thomashunter@example.com')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy::User do
|
4
|
+
let(:consumer_key) { '_your_consumen_key_' }
|
5
|
+
let(:consumer_secret) { '_your_consumen_secret_' }
|
6
|
+
let(:access_token) do
|
7
|
+
{
|
8
|
+
token: '_your_user_token_',
|
9
|
+
secret: '_your_secret_token_'
|
10
|
+
}
|
11
|
+
end
|
12
|
+
let(:client) { Copy::Client.new(session) }
|
13
|
+
let(:session) { Copy::Session.new(access_token) }
|
14
|
+
let(:valid_attributes) do
|
15
|
+
JSON.parse %{
|
16
|
+
{
|
17
|
+
"id": "1381231",
|
18
|
+
"storage":{
|
19
|
+
"used": 9207643837,
|
20
|
+
"quota": 1100585369600,
|
21
|
+
"saved": 14557934927
|
22
|
+
},
|
23
|
+
"first_name": "Thomas",
|
24
|
+
"last_name": "Hunter",
|
25
|
+
"developer": true,
|
26
|
+
"created_time": 1358175510,
|
27
|
+
"email": "thomashunter@example.com",
|
28
|
+
"emails": [
|
29
|
+
{
|
30
|
+
"primary": true,
|
31
|
+
"confirmed": true,
|
32
|
+
"email": "thomashunter@example.com",
|
33
|
+
"gravatar": "eca957c6552e783627a0ced1035e1888"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"primary": false,
|
37
|
+
"confirmed": true,
|
38
|
+
"email": "thomashunter@example.net",
|
39
|
+
"gravatar": "c0e344ddcbabb383f94b1bd3486e55ba"
|
40
|
+
}
|
41
|
+
]
|
42
|
+
}
|
43
|
+
}
|
44
|
+
end
|
45
|
+
let (:user) do
|
46
|
+
Copy::User.new(valid_attributes)
|
47
|
+
end
|
48
|
+
|
49
|
+
before :each do
|
50
|
+
Copy.config do |configuration|
|
51
|
+
configuration[:consumer_key] = consumer_key
|
52
|
+
configuration[:consumer_secret] = consumer_secret
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#initialize" do
|
57
|
+
it 'initializes all attributes correctly' do
|
58
|
+
expect(user.email).to eql('thomashunter@example.com')
|
59
|
+
expect(user.id).to eql('1381231')
|
60
|
+
expect(user.first_name).to eql('Thomas')
|
61
|
+
expect(user.last_name).to eql('Hunter')
|
62
|
+
expect(user.emails.map {|a| a['email'] }).to eql(%w{thomashunter@example.com thomashunter@example.net})
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe ".show" do
|
67
|
+
let(:user_show) { Copy::User.show( session: session ) }
|
68
|
+
before :each do
|
69
|
+
allow(Copy).to receive(:request).and_return(valid_attributes)
|
70
|
+
end
|
71
|
+
it "makes a new GET request using the correct API endpoint to receive a specific user" do
|
72
|
+
expect(Copy).to receive(:request).with(:get, nil, "user", {}, { session: session })
|
73
|
+
user_show
|
74
|
+
end
|
75
|
+
it 'returns a user with the correct email' do
|
76
|
+
expect(user_show.email).to eql('thomashunter@example.com')
|
77
|
+
end
|
78
|
+
it 'returns a user with the correct id' do
|
79
|
+
expect(user_show.id).to eql('1381231')
|
80
|
+
end
|
81
|
+
it 'returns a user with the correct first_name' do
|
82
|
+
expect(user_show.first_name).to eql('Thomas')
|
83
|
+
end
|
84
|
+
it 'returns a user with the correct last_name' do
|
85
|
+
expect(user_show.last_name).to eql('Hunter')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe ".update" do
|
90
|
+
let(:update_attributes) do
|
91
|
+
{
|
92
|
+
first_name: 'New Firt name',
|
93
|
+
last_name: 'New Last name'
|
94
|
+
}
|
95
|
+
end
|
96
|
+
let(:user_update) do
|
97
|
+
Copy::User.update(update_attributes.merge(session: session))
|
98
|
+
end
|
99
|
+
before :each do
|
100
|
+
allow(Copy).to receive(:request).and_return(valid_attributes.merge(update_attributes))
|
101
|
+
end
|
102
|
+
it "makes a new GET request using the correct API endpoint to receive a specific user" do
|
103
|
+
expect(Copy).to receive(:request).with(:put, nil, "user", update_attributes, { session: session })
|
104
|
+
user_update
|
105
|
+
end
|
106
|
+
it 'returns a user with the correct email' do
|
107
|
+
expect(user_update.email).to eql('thomashunter@example.com')
|
108
|
+
end
|
109
|
+
it 'returns a user with the correct id' do
|
110
|
+
expect(user_update.id).to eql('1381231')
|
111
|
+
end
|
112
|
+
it 'returns a user with the correct first_name' do
|
113
|
+
expect(user_update.first_name).to eql('New Firt name')
|
114
|
+
end
|
115
|
+
it 'returns a user with the correct last_name' do
|
116
|
+
expect(user_update.last_name).to eql('New Last name')
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
data/spec/copy_spec.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Copy do
|
4
|
+
describe ".request" do
|
5
|
+
context "given no api key exists" do
|
6
|
+
it "raises an authentication error" do
|
7
|
+
expect { Copy.request(:get, nil, "clients", {}) }.to raise_error(Copy::AuthenticationError)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
context "with an invalid api key" do
|
12
|
+
let(:consumer_key) { '_your_consumen_key_' }
|
13
|
+
let(:consumer_secret) { '_your_consumen_secret_' }
|
14
|
+
let(:access_token) do
|
15
|
+
{
|
16
|
+
token: '_your_user_token_',
|
17
|
+
secret: '_your_secret_token_'
|
18
|
+
}
|
19
|
+
end
|
20
|
+
let(:client) { Copy::Client.new(session) }
|
21
|
+
let(:session) { Copy::Session.new(access_token) }
|
22
|
+
|
23
|
+
before(:each) do
|
24
|
+
Copy.config do |configuration|
|
25
|
+
configuration[:consumer_key] = consumer_key
|
26
|
+
configuration[:consumer_secret] = consumer_secret
|
27
|
+
end
|
28
|
+
WebMock.stub_request(:any, /#{Copy::API_BASE}/).to_return(:body => "{}")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "attempts to get a url with one param" do
|
32
|
+
Copy.request(:get, nil, 'user', { param_name: "param_value" }, { session: session })
|
33
|
+
WebMock.should have_requested(:get, "https://#{Copy::DOMAIN_BASE}.#{Copy::API_BASE}/#{Copy::API_BASE_PATH}/user?param_name=param_value")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "attempts to get a url with more than one param" do
|
37
|
+
Copy.request(:get, nil, "user", { client: "client_id", order: "created_at_desc" }, { session: session })
|
38
|
+
WebMock.should have_requested(:get, "https://#{Copy::DOMAIN_BASE}.#{Copy::API_BASE}/#{Copy::API_BASE_PATH}/user?client=client_id&order=created_at_desc")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "doesn't add a question mark if no params" do
|
42
|
+
Copy.request(:post, nil, "user", {}, { session: session })
|
43
|
+
WebMock.should have_requested(:post, "https://#{Copy::DOMAIN_BASE}.#{Copy::API_BASE}/#{Copy::API_BASE_PATH}/user")
|
44
|
+
end
|
45
|
+
|
46
|
+
it "uses the param id to construct the url" do
|
47
|
+
Copy.request(:post, nil, "user", {id: 'new_id'}, { session: session })
|
48
|
+
WebMock.should have_requested(:post, "https://#{Copy::DOMAIN_BASE}.#{Copy::API_BASE}/#{Copy::API_BASE_PATH}/user/new_id")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
loremp ipsum dolor loremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolorloremp ipsum dolor...
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
|
+
require "copy"
|
4
|
+
require "rspec"
|
5
|
+
require "rspec/autorun"
|
6
|
+
require "webmock/rspec"
|
7
|
+
require "pry"
|
8
|
+
require 'coveralls'
|
9
|
+
Coveralls.wear!
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: copy-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andres Bravo
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-02-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: oauth
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: multipart-post
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.1.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.1.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: API wrapper for Copy.
|
84
|
+
email:
|
85
|
+
- hola@andresbravo.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .gitignore
|
91
|
+
- .rspec
|
92
|
+
- .travis.yml
|
93
|
+
- Gemfile
|
94
|
+
- LICENSE
|
95
|
+
- README.md
|
96
|
+
- Rakefile
|
97
|
+
- copy.gemspec
|
98
|
+
- lib/copy.rb
|
99
|
+
- lib/copy/base.rb
|
100
|
+
- lib/copy/client.rb
|
101
|
+
- lib/copy/file.rb
|
102
|
+
- lib/copy/link.rb
|
103
|
+
- lib/copy/operations/activity.rb
|
104
|
+
- lib/copy/operations/all.rb
|
105
|
+
- lib/copy/operations/base.rb
|
106
|
+
- lib/copy/operations/create.rb
|
107
|
+
- lib/copy/operations/delete.rb
|
108
|
+
- lib/copy/operations/find.rb
|
109
|
+
- lib/copy/operations/meta.rb
|
110
|
+
- lib/copy/operations/show.rb
|
111
|
+
- lib/copy/operations/update.rb
|
112
|
+
- lib/copy/request/base.rb
|
113
|
+
- lib/copy/request/connection.rb
|
114
|
+
- lib/copy/request/helpers.rb
|
115
|
+
- lib/copy/request/info.rb
|
116
|
+
- lib/copy/request/validator.rb
|
117
|
+
- lib/copy/revision.rb
|
118
|
+
- lib/copy/session.rb
|
119
|
+
- lib/copy/user.rb
|
120
|
+
- lib/copy/version.rb
|
121
|
+
- spec/copy/base_spec.rb
|
122
|
+
- spec/copy/client_spec.rb
|
123
|
+
- spec/copy/file_spec.rb
|
124
|
+
- spec/copy/link_spec.rb
|
125
|
+
- spec/copy/request/base_spec.rb
|
126
|
+
- spec/copy/request/connection_spec.rb
|
127
|
+
- spec/copy/request/info_spec.rb
|
128
|
+
- spec/copy/request/validator_spec.rb
|
129
|
+
- spec/copy/revision_spec.rb
|
130
|
+
- spec/copy/user_spec.rb
|
131
|
+
- spec/copy_spec.rb
|
132
|
+
- spec/fixtures/hola.txt
|
133
|
+
- spec/spec_helper.rb
|
134
|
+
homepage: https://github.com/andresbravog/copy-ruby
|
135
|
+
licenses: []
|
136
|
+
metadata: {}
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.0.6
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: API wrapper for Copy.
|
157
|
+
test_files:
|
158
|
+
- spec/copy/base_spec.rb
|
159
|
+
- spec/copy/client_spec.rb
|
160
|
+
- spec/copy/file_spec.rb
|
161
|
+
- spec/copy/link_spec.rb
|
162
|
+
- spec/copy/request/base_spec.rb
|
163
|
+
- spec/copy/request/connection_spec.rb
|
164
|
+
- spec/copy/request/info_spec.rb
|
165
|
+
- spec/copy/request/validator_spec.rb
|
166
|
+
- spec/copy/revision_spec.rb
|
167
|
+
- spec/copy/user_spec.rb
|
168
|
+
- spec/copy_spec.rb
|
169
|
+
- spec/fixtures/hola.txt
|
170
|
+
- spec/spec_helper.rb
|