bcx 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bcx.gemspec +1 -1
- data/docs/collection.html +103 -0
- data/docs/configuration.html +5 -0
- data/docs/response_error.html +5 -0
- data/docs/version.html +6 -1
- data/lib/bcx.rb +1 -0
- data/lib/bcx/resources/access.rb +26 -0
- data/lib/bcx/resources/project.rb +1 -0
- data/lib/bcx/version.rb +1 -1
- data/spec/bcx/access_spec.rb +33 -0
- data/spec/cassettes/Bcx_Resources_Access/DELETE_/projects/2951531/accesses/4996562_json/should_revoke_access.yml +103 -0
- data/spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/first_access_should_have_the_correct_id.yml +56 -0
- data/spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/should_be_an_array.yml +56 -0
- data/spec/cassettes/Bcx_Resources_Access/POST_/projects/2951531/accesses_json/should_grant_access.yml +105 -0
- metadata +27 -15
data/bcx.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = Bcx::VERSION
|
17
17
|
|
18
|
-
gem.add_runtime_dependency 'rapidash', '0.3.0.
|
18
|
+
gem.add_runtime_dependency 'rapidash', '0.3.0.beta2'
|
19
19
|
|
20
20
|
gem.add_development_dependency 'rake'
|
21
21
|
gem.add_development_dependency 'rspec'
|
@@ -0,0 +1,103 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>collection.rb</title>
|
6
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
7
|
+
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
|
8
|
+
<link rel="stylesheet" media="all" href="docco.css" />
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<div id="container">
|
12
|
+
<div id="background"></div>
|
13
|
+
|
14
|
+
<ul id="jump_to">
|
15
|
+
<li>
|
16
|
+
<a class="large" href="javascript:void(0);">Jump To …</a>
|
17
|
+
<a class="small" href="javascript:void(0);">+</a>
|
18
|
+
<div id="jump_wrapper">
|
19
|
+
<div id="jump_page">
|
20
|
+
|
21
|
+
|
22
|
+
<a class="source" href="configuration.html">
|
23
|
+
configuration.rb
|
24
|
+
</a>
|
25
|
+
|
26
|
+
|
27
|
+
<a class="source" href="response_error.html">
|
28
|
+
response_error.rb
|
29
|
+
</a>
|
30
|
+
|
31
|
+
|
32
|
+
<a class="source" href="version.html">
|
33
|
+
version.rb
|
34
|
+
</a>
|
35
|
+
|
36
|
+
|
37
|
+
<a class="source" href="collection.html">
|
38
|
+
collection.rb
|
39
|
+
</a>
|
40
|
+
|
41
|
+
</div>
|
42
|
+
</li>
|
43
|
+
</ul>
|
44
|
+
|
45
|
+
<ul class="sections">
|
46
|
+
|
47
|
+
<li id="title">
|
48
|
+
<div class="annotation">
|
49
|
+
<h1>collection.rb</h1>
|
50
|
+
</div>
|
51
|
+
</li>
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
<li id="section-1">
|
56
|
+
<div class="annotation">
|
57
|
+
|
58
|
+
<div class="pilwrap ">
|
59
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<div class="content"><div class='highlight'><pre><span class="class"><span class="keyword">module</span> <span class="title">Rapidash</span></span>
|
65
|
+
<span class="class"><span class="keyword">module</span> <span class="title">Collection</span></span>
|
66
|
+
|
67
|
+
<span class="function"><span class="keyword">def</span> <span class="title"><span class="keyword">self</span></span>.<span class="title">included</span><span class="params">(base)</span></span>
|
68
|
+
base.extend <span class="constant">ClassMethods</span>
|
69
|
+
<span class="keyword">end</span>
|
70
|
+
|
71
|
+
<span class="class"><span class="keyword">module</span> <span class="title">ClassMethods</span></span>
|
72
|
+
<span class="function"><span class="keyword">def</span> <span class="title">collection</span><span class="params">(name, attrs = {})</span></span>
|
73
|
+
path = attrs[<span class="symbol">:path</span>] || name.to_s
|
74
|
+
path.gsub!(<span class="regexp">/^\//</span>, <span class="string">''</span>)
|
75
|
+
|
76
|
+
method = attrs[<span class="symbol">:method</span>] || <span class="symbol">:get</span>
|
77
|
+
|
78
|
+
define_method(<span class="string">"<span class="subst">#{name}</span>!"</span>) <span class="keyword">do</span>
|
79
|
+
original_url = <span class="variable">@url</span>
|
80
|
+
|
81
|
+
<span class="variable">@url</span> += <span class="string">"/<span class="subst">#{path}</span>"</span>
|
82
|
+
<span class="variable">@options</span>[<span class="symbol">:method</span>] = method
|
83
|
+
result = call!
|
84
|
+
|
85
|
+
<span class="variable">@url</span> = original_url
|
86
|
+
|
87
|
+
result
|
88
|
+
<span class="keyword">end</span>
|
89
|
+
<span class="keyword">end</span>
|
90
|
+
<span class="keyword">end</span>
|
91
|
+
<span class="keyword">end</span>
|
92
|
+
<span class="keyword">end</span>
|
93
|
+
|
94
|
+
<span class="class"><span class="keyword">class</span> <span class="title">Rapidash::Base</span></span>
|
95
|
+
<span class="keyword">include</span> <span class="constant">Rapidash::Collection</span>
|
96
|
+
<span class="keyword">end</span></pre></div></div>
|
97
|
+
|
98
|
+
</li>
|
99
|
+
|
100
|
+
</ul>
|
101
|
+
</div>
|
102
|
+
</body>
|
103
|
+
</html>
|
data/docs/configuration.html
CHANGED
data/docs/response_error.html
CHANGED
data/docs/version.html
CHANGED
@@ -33,6 +33,11 @@
|
|
33
33
|
version.rb
|
34
34
|
</a>
|
35
35
|
|
36
|
+
|
37
|
+
<a class="source" href="collection.html">
|
38
|
+
collection.rb
|
39
|
+
</a>
|
40
|
+
|
36
41
|
</div>
|
37
42
|
</li>
|
38
43
|
</ul>
|
@@ -57,7 +62,7 @@
|
|
57
62
|
</div>
|
58
63
|
|
59
64
|
<div class="content"><div class='highlight'><pre><span class="class"><span class="keyword">module</span> <span class="title">Bcx</span></span>
|
60
|
-
<span class="constant">VERSION</span> = <span class="string">"0.1.
|
65
|
+
<span class="constant">VERSION</span> = <span class="string">"0.1.1"</span>
|
61
66
|
<span class="keyword">end</span></pre></div></div>
|
62
67
|
|
63
68
|
</li>
|
data/lib/bcx.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Bcx
|
2
|
+
module Resources
|
3
|
+
|
4
|
+
# Bcx::Resources::Access
|
5
|
+
# Provides access to accesses resource at per-project level
|
6
|
+
#
|
7
|
+
# Get accesses for a project
|
8
|
+
# GET /projects/1/accesses.json
|
9
|
+
#
|
10
|
+
# client.projects(1).accesses!
|
11
|
+
#
|
12
|
+
# Grant access
|
13
|
+
# POST /projects/1/accesses.json
|
14
|
+
#
|
15
|
+
# client.projects(1).accesses.create!(ids: [ 5, 6, 10])
|
16
|
+
#
|
17
|
+
# Revoke access
|
18
|
+
# DELETE /projects/1/accesses/1.json
|
19
|
+
#
|
20
|
+
# client.projects(1).accesses(1).delete!
|
21
|
+
#
|
22
|
+
class Access < Rapidash::Base
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/bcx/version.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Bcx::Resources::Access, :vcr do
|
4
|
+
let(:client) { Bcx::Client::HTTP.new(login: 'bcx-test-user', password: 'secret') }
|
5
|
+
|
6
|
+
describe "GET /projects/2951531/accesses.json" do
|
7
|
+
let(:accesses) { client.projects(2951531).accesses! }
|
8
|
+
|
9
|
+
it "should be an array" do
|
10
|
+
expect(accesses).to be_an Array
|
11
|
+
end
|
12
|
+
|
13
|
+
it "first access should have the correct id" do
|
14
|
+
expect(accesses.first.id).to eq 4666033
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "POST /projects/2951531/accesses.json" do
|
19
|
+
it "should grant access" do
|
20
|
+
client.projects(2951531).accesses.create!(email_addresses: ["hopper.derek@gmail.com"])
|
21
|
+
accesses = client.projects(2951531).accesses!
|
22
|
+
accesses.detect { |access| access.id == 4996562 }.should be_present
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "DELETE /projects/2951531/accesses/4996562.json" do
|
27
|
+
it "should revoke access" do
|
28
|
+
client.projects(2951531).accesses(4996562).delete!
|
29
|
+
accesses = client.projects(2951531).accesses!
|
30
|
+
accesses.detect { |access| access.id == 4996562 }.should_not be_present
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: delete
|
5
|
+
uri: https://basecamp.com/2274488/api/v1/projects/2951531/accesses/4996562.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.7
|
12
|
+
Authorization:
|
13
|
+
- Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 204
|
17
|
+
message:
|
18
|
+
headers:
|
19
|
+
server:
|
20
|
+
- nginx
|
21
|
+
date:
|
22
|
+
- Thu, 04 Jul 2013 13:53:53 GMT
|
23
|
+
connection:
|
24
|
+
- close
|
25
|
+
status:
|
26
|
+
- 204 No Content
|
27
|
+
x-frame-options:
|
28
|
+
- SAMEORIGIN
|
29
|
+
x-xss-protection:
|
30
|
+
- 1; mode=block
|
31
|
+
x-content-type-options:
|
32
|
+
- nosniff
|
33
|
+
x-ua-compatible:
|
34
|
+
- chrome=1
|
35
|
+
x-xhr-current-location:
|
36
|
+
- /2274488/api/v1/projects/2951531/accesses/4996562.json
|
37
|
+
x-asset-paths:
|
38
|
+
- ! '{"application.js":"application-9015423afd58438dfee449c2a129634f.js","application.css":"application-4e033ab8c3326d2795418cf2a702f477.css"}'
|
39
|
+
cache-control:
|
40
|
+
- no-cache
|
41
|
+
x-request-id:
|
42
|
+
- d57ac2fc-4551-4c54-b27b-9fdb51642bf1
|
43
|
+
x-runtime:
|
44
|
+
- '0.206649'
|
45
|
+
body:
|
46
|
+
encoding: US-ASCII
|
47
|
+
string: ''
|
48
|
+
http_version:
|
49
|
+
recorded_at: Thu, 04 Jul 2013 13:53:55 GMT
|
50
|
+
- request:
|
51
|
+
method: get
|
52
|
+
uri: https://basecamp.com/2274488/api/v1/projects/2951531/accesses.json
|
53
|
+
body:
|
54
|
+
encoding: US-ASCII
|
55
|
+
string: ''
|
56
|
+
headers:
|
57
|
+
User-Agent:
|
58
|
+
- Faraday v0.8.7
|
59
|
+
Authorization:
|
60
|
+
- Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message:
|
65
|
+
headers:
|
66
|
+
server:
|
67
|
+
- nginx
|
68
|
+
date:
|
69
|
+
- Thu, 04 Jul 2013 13:53:53 GMT
|
70
|
+
content-type:
|
71
|
+
- application/json; charset=utf-8
|
72
|
+
transfer-encoding:
|
73
|
+
- chunked
|
74
|
+
connection:
|
75
|
+
- close
|
76
|
+
status:
|
77
|
+
- 200 OK
|
78
|
+
x-frame-options:
|
79
|
+
- SAMEORIGIN
|
80
|
+
x-xss-protection:
|
81
|
+
- 1; mode=block
|
82
|
+
x-content-type-options:
|
83
|
+
- nosniff
|
84
|
+
x-ua-compatible:
|
85
|
+
- chrome=1
|
86
|
+
x-xhr-current-location:
|
87
|
+
- /2274488/api/v1/projects/2951531/accesses.json
|
88
|
+
x-asset-paths:
|
89
|
+
- ! '{"application.js":"application-9015423afd58438dfee449c2a129634f.js","application.css":"application-4e033ab8c3326d2795418cf2a702f477.css"}'
|
90
|
+
last-modified:
|
91
|
+
- Thu, 04 Jul 2013 13:53:53 GMT
|
92
|
+
cache-control:
|
93
|
+
- max-age=0, private, must-revalidate
|
94
|
+
x-request-id:
|
95
|
+
- 55ef02c0-b6c0-474e-afd7-9ed3a014cc4c
|
96
|
+
x-runtime:
|
97
|
+
- '0.143751'
|
98
|
+
body:
|
99
|
+
encoding: US-ASCII
|
100
|
+
string: ! '[{"id":4666033,"name":"Paul Springett","email_address":"paul@springett.me","admin":true,"created_at":"2013-05-24T18:59:10.000Z","updated_at":"2013-07-04T13:53:53.000Z","identity_id":6967737,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_3/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4666033-paul-springett.json"},{"id":4904724,"name":"paul@simpleweb.co.uk","email_address":"paul@simpleweb.co.uk","admin":false,"created_at":"2013-06-21T22:41:31.000Z","updated_at":"2013-06-21T22:41:31.000Z","identity_id":null,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_4/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4904724-paul-simpleweb-co-uk.json"}]'
|
101
|
+
http_version:
|
102
|
+
recorded_at: Thu, 04 Jul 2013 13:53:55 GMT
|
103
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://basecamp.com/2274488/api/v1/projects/2951531/accesses.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.7
|
12
|
+
Authorization:
|
13
|
+
- Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message:
|
18
|
+
headers:
|
19
|
+
server:
|
20
|
+
- nginx
|
21
|
+
date:
|
22
|
+
- Thu, 04 Jul 2013 01:20:13 GMT
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
transfer-encoding:
|
26
|
+
- chunked
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
status:
|
30
|
+
- 200 OK
|
31
|
+
x-frame-options:
|
32
|
+
- SAMEORIGIN
|
33
|
+
x-xss-protection:
|
34
|
+
- 1; mode=block
|
35
|
+
x-content-type-options:
|
36
|
+
- nosniff
|
37
|
+
x-ua-compatible:
|
38
|
+
- chrome=1
|
39
|
+
x-xhr-current-location:
|
40
|
+
- /2274488/api/v1/projects/2951531/accesses.json
|
41
|
+
x-asset-paths:
|
42
|
+
- ! '{"application.js":"application-9015423afd58438dfee449c2a129634f.js","application.css":"application-4e033ab8c3326d2795418cf2a702f477.css"}'
|
43
|
+
last-modified:
|
44
|
+
- Fri, 21 Jun 2013 22:41:31 GMT
|
45
|
+
cache-control:
|
46
|
+
- max-age=0, private, must-revalidate
|
47
|
+
x-request-id:
|
48
|
+
- 0bed8cbd-c296-439c-8e5c-2227c1286672
|
49
|
+
x-runtime:
|
50
|
+
- '0.141652'
|
51
|
+
body:
|
52
|
+
encoding: US-ASCII
|
53
|
+
string: ! '[{"id":4666033,"name":"Paul Springett","email_address":"paul@springett.me","admin":true,"created_at":"2013-05-24T18:59:10.000Z","updated_at":"2013-06-21T22:41:31.000Z","identity_id":6967737,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_3/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4666033-paul-springett.json"},{"id":4904724,"name":"paul@simpleweb.co.uk","email_address":"paul@simpleweb.co.uk","admin":false,"created_at":"2013-06-21T22:41:31.000Z","updated_at":"2013-06-21T22:41:31.000Z","identity_id":null,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_4/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4904724-paul-simpleweb-co-uk.json"}]'
|
54
|
+
http_version:
|
55
|
+
recorded_at: Thu, 04 Jul 2013 01:20:15 GMT
|
56
|
+
recorded_with: VCR 2.5.0
|
data/spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/should_be_an_array.yml
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://basecamp.com/2274488/api/v1/projects/2951531/accesses.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.7
|
12
|
+
Authorization:
|
13
|
+
- Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message:
|
18
|
+
headers:
|
19
|
+
server:
|
20
|
+
- nginx
|
21
|
+
date:
|
22
|
+
- Thu, 04 Jul 2013 01:28:11 GMT
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
transfer-encoding:
|
26
|
+
- chunked
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
status:
|
30
|
+
- 200 OK
|
31
|
+
x-frame-options:
|
32
|
+
- SAMEORIGIN
|
33
|
+
x-xss-protection:
|
34
|
+
- 1; mode=block
|
35
|
+
x-content-type-options:
|
36
|
+
- nosniff
|
37
|
+
x-ua-compatible:
|
38
|
+
- chrome=1
|
39
|
+
x-xhr-current-location:
|
40
|
+
- /2274488/api/v1/projects/2951531/accesses.json
|
41
|
+
x-asset-paths:
|
42
|
+
- ! '{"application.js":"application-9015423afd58438dfee449c2a129634f.js","application.css":"application-4e033ab8c3326d2795418cf2a702f477.css"}'
|
43
|
+
last-modified:
|
44
|
+
- Thu, 04 Jul 2013 01:24:15 GMT
|
45
|
+
cache-control:
|
46
|
+
- max-age=0, private, must-revalidate
|
47
|
+
x-request-id:
|
48
|
+
- baff4457-c0d0-45b3-a6a8-99453ef63dcc
|
49
|
+
x-runtime:
|
50
|
+
- '0.139995'
|
51
|
+
body:
|
52
|
+
encoding: US-ASCII
|
53
|
+
string: ! '[{"id":4666033,"name":"Paul Springett","email_address":"paul@springett.me","admin":true,"created_at":"2013-05-24T18:59:10.000Z","updated_at":"2013-07-04T01:24:15.000Z","identity_id":6967737,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_3/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4666033-paul-springett.json"},{"id":4904724,"name":"paul@simpleweb.co.uk","email_address":"paul@simpleweb.co.uk","admin":false,"created_at":"2013-06-21T22:41:31.000Z","updated_at":"2013-06-21T22:41:31.000Z","identity_id":null,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_4/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4904724-paul-simpleweb-co-uk.json"},{"id":4996562,"name":"hopper.derek@gmail.com","email_address":"hopper.derek@gmail.com","admin":false,"created_at":"2013-07-04T01:24:15.000Z","updated_at":"2013-07-04T01:24:15.000Z","identity_id":null,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_2/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4996562-hopper-derek-gmail-c.json"}]'
|
54
|
+
http_version:
|
55
|
+
recorded_at: Thu, 04 Jul 2013 01:28:13 GMT
|
56
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,105 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://basecamp.com/2274488/api/v1/projects/2951531/accesses.json
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ! '{"email_addresses":["hopper.derek@gmail.com"]}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.7
|
12
|
+
Authorization:
|
13
|
+
- Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 204
|
19
|
+
message:
|
20
|
+
headers:
|
21
|
+
server:
|
22
|
+
- nginx
|
23
|
+
date:
|
24
|
+
- Thu, 04 Jul 2013 13:53:52 GMT
|
25
|
+
connection:
|
26
|
+
- close
|
27
|
+
status:
|
28
|
+
- 204 No Content
|
29
|
+
x-frame-options:
|
30
|
+
- SAMEORIGIN
|
31
|
+
x-xss-protection:
|
32
|
+
- 1; mode=block
|
33
|
+
x-content-type-options:
|
34
|
+
- nosniff
|
35
|
+
x-ua-compatible:
|
36
|
+
- chrome=1
|
37
|
+
x-xhr-current-location:
|
38
|
+
- /2274488/api/v1/projects/2951531/accesses.json
|
39
|
+
x-asset-paths:
|
40
|
+
- ! '{"application.js":"application-9015423afd58438dfee449c2a129634f.js","application.css":"application-4e033ab8c3326d2795418cf2a702f477.css"}'
|
41
|
+
cache-control:
|
42
|
+
- no-cache
|
43
|
+
x-request-id:
|
44
|
+
- 0ff6fdd1-47bd-495e-bfd4-4d1baf61adcd
|
45
|
+
x-runtime:
|
46
|
+
- '0.383346'
|
47
|
+
body:
|
48
|
+
encoding: US-ASCII
|
49
|
+
string: ''
|
50
|
+
http_version:
|
51
|
+
recorded_at: Thu, 04 Jul 2013 13:53:54 GMT
|
52
|
+
- request:
|
53
|
+
method: get
|
54
|
+
uri: https://basecamp.com/2274488/api/v1/projects/2951531/accesses.json
|
55
|
+
body:
|
56
|
+
encoding: US-ASCII
|
57
|
+
string: ''
|
58
|
+
headers:
|
59
|
+
User-Agent:
|
60
|
+
- Faraday v0.8.7
|
61
|
+
Authorization:
|
62
|
+
- Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
|
63
|
+
response:
|
64
|
+
status:
|
65
|
+
code: 200
|
66
|
+
message:
|
67
|
+
headers:
|
68
|
+
server:
|
69
|
+
- nginx
|
70
|
+
date:
|
71
|
+
- Thu, 04 Jul 2013 13:53:53 GMT
|
72
|
+
content-type:
|
73
|
+
- application/json; charset=utf-8
|
74
|
+
transfer-encoding:
|
75
|
+
- chunked
|
76
|
+
connection:
|
77
|
+
- close
|
78
|
+
status:
|
79
|
+
- 200 OK
|
80
|
+
x-frame-options:
|
81
|
+
- SAMEORIGIN
|
82
|
+
x-xss-protection:
|
83
|
+
- 1; mode=block
|
84
|
+
x-content-type-options:
|
85
|
+
- nosniff
|
86
|
+
x-ua-compatible:
|
87
|
+
- chrome=1
|
88
|
+
x-xhr-current-location:
|
89
|
+
- /2274488/api/v1/projects/2951531/accesses.json
|
90
|
+
x-asset-paths:
|
91
|
+
- ! '{"application.js":"application-9015423afd58438dfee449c2a129634f.js","application.css":"application-4e033ab8c3326d2795418cf2a702f477.css"}'
|
92
|
+
last-modified:
|
93
|
+
- Thu, 04 Jul 2013 13:53:52 GMT
|
94
|
+
cache-control:
|
95
|
+
- max-age=0, private, must-revalidate
|
96
|
+
x-request-id:
|
97
|
+
- 2b73f50b-37a4-4287-acfa-c012b1f38cc2
|
98
|
+
x-runtime:
|
99
|
+
- '0.149517'
|
100
|
+
body:
|
101
|
+
encoding: US-ASCII
|
102
|
+
string: ! '[{"id":4666033,"name":"Paul Springett","email_address":"paul@springett.me","admin":true,"created_at":"2013-05-24T18:59:10.000Z","updated_at":"2013-07-04T13:53:52.000Z","identity_id":6967737,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_3/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4666033-paul-springett.json"},{"id":4904724,"name":"paul@simpleweb.co.uk","email_address":"paul@simpleweb.co.uk","admin":false,"created_at":"2013-06-21T22:41:31.000Z","updated_at":"2013-06-21T22:41:31.000Z","identity_id":null,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_4/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4904724-paul-simpleweb-co-uk.json"},{"id":4996562,"name":"hopper.derek@gmail.com","email_address":"hopper.derek@gmail.com","admin":false,"created_at":"2013-07-04T01:24:15.000Z","updated_at":"2013-07-04T13:53:52.000Z","identity_id":null,"avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/default_avatar_v1_2/avatar.gif?r=3","url":"https://basecamp.com/2274488/api/v1/people/4996562-hopper-derek-gmail-c.json"}]'
|
103
|
+
http_version:
|
104
|
+
recorded_at: Thu, 04 Jul 2013 13:53:54 GMT
|
105
|
+
recorded_with: VCR 2.5.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bcx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rapidash
|
16
|
-
requirement: &
|
16
|
+
requirement: &70130609298520 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - =
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.3.0.
|
21
|
+
version: 0.3.0.beta2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70130609298520
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70130609297480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70130609297480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70130609296660 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70130609296660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: simplecov
|
49
|
-
requirement: &
|
49
|
+
requirement: &70130609312460 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70130609312460
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: vcr
|
60
|
-
requirement: &
|
60
|
+
requirement: &70130609311960 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70130609311960
|
69
69
|
description: Fully-fledged Ruby API wrapper for Basecamp Next
|
70
70
|
email:
|
71
71
|
- paul@springett.me
|
@@ -81,6 +81,7 @@ files:
|
|
81
81
|
- README.md
|
82
82
|
- Rakefile
|
83
83
|
- bcx.gemspec
|
84
|
+
- docs/collection.html
|
84
85
|
- docs/configuration.html
|
85
86
|
- docs/docco.css
|
86
87
|
- docs/public/fonts/aller-bold.eot
|
@@ -99,6 +100,7 @@ files:
|
|
99
100
|
- lib/bcx/client/http.rb
|
100
101
|
- lib/bcx/client/oauth.rb
|
101
102
|
- lib/bcx/configuration.rb
|
103
|
+
- lib/bcx/resources/access.rb
|
102
104
|
- lib/bcx/resources/person.rb
|
103
105
|
- lib/bcx/resources/project.rb
|
104
106
|
- lib/bcx/resources/todo.rb
|
@@ -107,12 +109,17 @@ files:
|
|
107
109
|
- lib/bcx/version.rb
|
108
110
|
- lib/rapidash/collection.rb
|
109
111
|
- lib/tasks/docs.rake
|
112
|
+
- spec/bcx/access_spec.rb
|
110
113
|
- spec/bcx/client_spec.rb
|
111
114
|
- spec/bcx/person_spec.rb
|
112
115
|
- spec/bcx/project_spec.rb
|
113
116
|
- spec/bcx/todo_spec.rb
|
114
117
|
- spec/bcx/todolist_spec.rb
|
115
118
|
- spec/cassettes/Bcx_Client/error_handling/should_raise_exception.yml
|
119
|
+
- spec/cassettes/Bcx_Resources_Access/DELETE_/projects/2951531/accesses/4996562_json/should_revoke_access.yml
|
120
|
+
- spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/first_access_should_have_the_correct_id.yml
|
121
|
+
- spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/should_be_an_array.yml
|
122
|
+
- spec/cassettes/Bcx_Resources_Access/POST_/projects/2951531/accesses_json/should_grant_access.yml
|
116
123
|
- spec/cassettes/Bcx_Resources_Person/DELETE_/people/4904728_json/should_delete_a_todolist.yml
|
117
124
|
- spec/cassettes/Bcx_Resources_Person/GET_/people/4666033_json/should_have_the_correct_id.yml
|
118
125
|
- spec/cassettes/Bcx_Resources_Person/GET_/people/4666033_json/should_return_a_hash.yml
|
@@ -168,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
175
|
version: '0'
|
169
176
|
segments:
|
170
177
|
- 0
|
171
|
-
hash: -
|
178
|
+
hash: -1568446484117578099
|
172
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
180
|
none: false
|
174
181
|
requirements:
|
@@ -177,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
184
|
version: '0'
|
178
185
|
segments:
|
179
186
|
- 0
|
180
|
-
hash: -
|
187
|
+
hash: -1568446484117578099
|
181
188
|
requirements: []
|
182
189
|
rubyforge_project:
|
183
190
|
rubygems_version: 1.8.16
|
@@ -186,12 +193,17 @@ specification_version: 3
|
|
186
193
|
summary: Fully-fledged Ruby API wrapper for Basecamp Next. Uses the Rapidash gem under
|
187
194
|
the hood.
|
188
195
|
test_files:
|
196
|
+
- spec/bcx/access_spec.rb
|
189
197
|
- spec/bcx/client_spec.rb
|
190
198
|
- spec/bcx/person_spec.rb
|
191
199
|
- spec/bcx/project_spec.rb
|
192
200
|
- spec/bcx/todo_spec.rb
|
193
201
|
- spec/bcx/todolist_spec.rb
|
194
202
|
- spec/cassettes/Bcx_Client/error_handling/should_raise_exception.yml
|
203
|
+
- spec/cassettes/Bcx_Resources_Access/DELETE_/projects/2951531/accesses/4996562_json/should_revoke_access.yml
|
204
|
+
- spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/first_access_should_have_the_correct_id.yml
|
205
|
+
- spec/cassettes/Bcx_Resources_Access/GET_/projects/2951531/accesses_json/should_be_an_array.yml
|
206
|
+
- spec/cassettes/Bcx_Resources_Access/POST_/projects/2951531/accesses_json/should_grant_access.yml
|
195
207
|
- spec/cassettes/Bcx_Resources_Person/DELETE_/people/4904728_json/should_delete_a_todolist.yml
|
196
208
|
- spec/cassettes/Bcx_Resources_Person/GET_/people/4666033_json/should_have_the_correct_id.yml
|
197
209
|
- spec/cassettes/Bcx_Resources_Person/GET_/people/4666033_json/should_return_a_hash.yml
|