bcx 0.1.1 → 0.2.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.
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.beta'
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 &hellip;</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">&#182;</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>
@@ -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>
@@ -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>
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.0"</span>
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
@@ -15,6 +15,7 @@ module Bcx
15
15
  autoload :Todolist, 'bcx/resources/todolist'
16
16
  autoload :Project, 'bcx/resources/project'
17
17
  autoload :Person, 'bcx/resources/person'
18
+ autoload :Access, 'bcx/resources/access'
18
19
  end
19
20
 
20
21
  module Client
@@ -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
@@ -37,6 +37,7 @@ module Bcx
37
37
  class Project < Rapidash::Base
38
38
  resource :todolists
39
39
  resource :todos
40
+ resource :accesses
40
41
 
41
42
  collection :archived
42
43
  end
data/lib/bcx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Bcx
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -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
@@ -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.1.1
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-03 00:00:00.000000000 Z
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: &70300257229040 !ruby/object:Gem::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.beta
21
+ version: 0.3.0.beta2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70300257229040
24
+ version_requirements: *70130609298520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70300257228480 !ruby/object:Gem::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: *70300257228480
35
+ version_requirements: *70130609297480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70300257227940 !ruby/object:Gem::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: *70300257227940
46
+ version_requirements: *70130609296660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70300257227420 !ruby/object:Gem::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: *70300257227420
57
+ version_requirements: *70130609312460
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: vcr
60
- requirement: &70300257226900 !ruby/object:Gem::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: *70300257226900
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: -811180034632004614
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: -811180034632004614
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