basecamper 0.0.2 → 0.0.3
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/.rvmrc +1 -0
- data/README.md +13 -0
- data/basecamper.gemspec +0 -1
- data/lib/basecamper/connection.rb +1 -1
- data/lib/basecamper/resource.rb +13 -3
- data/lib/basecamper/version.rb +1 -1
- data/spec/basecamper/connection_spec.rb +14 -0
- data/spec/basecamper/resource_spec.rb +40 -10
- metadata +67 -119
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use --create 1.9.3@basecamper
|
data/README.md
CHANGED
@@ -35,6 +35,15 @@ Basecamper also enables one to authenticate with one's username and password:
|
|
35
35
|
end
|
36
36
|
```
|
37
37
|
|
38
|
+
Authentication using OAuth is also supported:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
Basecamper.configure do |config|
|
42
|
+
config.use_oauth = true
|
43
|
+
config.token = 'abc123'
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
38
47
|
Use SSL?
|
39
48
|
|
40
49
|
```ruby
|
@@ -87,3 +96,7 @@ Parent associations:
|
|
87
96
|
message = Basecamper::Message.find(123)
|
88
97
|
message.project
|
89
98
|
```
|
99
|
+
|
100
|
+
Credits
|
101
|
+
-------
|
102
|
+
* Carlos Ramirez III ([carlosramireziii](https://github.com/carlosramireziii))
|
data/basecamper.gemspec
CHANGED
data/lib/basecamper/resource.rb
CHANGED
@@ -8,9 +8,8 @@ module Basecamper
|
|
8
8
|
public
|
9
9
|
|
10
10
|
def find(*args)
|
11
|
-
self.site
|
12
|
-
self.
|
13
|
-
self.password = Basecamper::Connection.password
|
11
|
+
self.site = Basecamper::Connection.domain
|
12
|
+
self.set_authentication
|
14
13
|
|
15
14
|
old_find(*args)
|
16
15
|
end
|
@@ -58,6 +57,17 @@ module Basecamper
|
|
58
57
|
'/'
|
59
58
|
end
|
60
59
|
|
60
|
+
protected
|
61
|
+
|
62
|
+
def set_authentication
|
63
|
+
if Basecamper::Connection.use_oauth
|
64
|
+
self.headers['authorization'] = "Bearer '#{Basecamper::Connection.token}'"
|
65
|
+
else
|
66
|
+
self.user = Basecamper::Connection.user
|
67
|
+
self.password = Basecamper::Connection.password
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
61
71
|
end
|
62
72
|
|
63
73
|
end
|
data/lib/basecamper/version.rb
CHANGED
@@ -39,6 +39,20 @@ module Basecamper
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
describe ".use_oauth=" do
|
43
|
+
it "sets @use_oauth to the passed value" do
|
44
|
+
subject.use_oauth = true
|
45
|
+
subject.instance_variable_get(:@use_oauth).should be_true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe ".use_oauth" do
|
50
|
+
it "returns the value of @use_oauth" do
|
51
|
+
subject.instance_variable_set(:@use_oauth, true)
|
52
|
+
subject.use_oauth.should be_true
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
42
56
|
describe ".user=" do
|
43
57
|
it "sets @user to the passed value" do
|
44
58
|
subject.user = user
|
@@ -63,6 +63,7 @@ module Basecamper
|
|
63
63
|
Basecamper::Connection.stub(:domain).and_return(domain)
|
64
64
|
Basecamper::Connection.stub(:user).and_return(user)
|
65
65
|
Basecamper::Connection.stub(:password).and_return(password)
|
66
|
+
Basecamper::Connection.stub(:use_oauth).and_return(false)
|
66
67
|
|
67
68
|
subject.stub(:old_find)
|
68
69
|
end
|
@@ -72,16 +73,6 @@ module Basecamper
|
|
72
73
|
subject.find
|
73
74
|
end
|
74
75
|
|
75
|
-
it "sets the user to Connection.user" do
|
76
|
-
subject.should_receive(:user=).with(user)
|
77
|
-
subject.find
|
78
|
-
end
|
79
|
-
|
80
|
-
it "sets the password to Connection.password" do
|
81
|
-
subject.should_receive(:password=).with(password)
|
82
|
-
subject.find
|
83
|
-
end
|
84
|
-
|
85
76
|
it "calls .old_find" do
|
86
77
|
subject.should_receive(:old_find).with(:all, {})
|
87
78
|
subject.find(:all, {})
|
@@ -114,5 +105,44 @@ module Basecamper
|
|
114
105
|
subject.prefix_source.should == '/'
|
115
106
|
end
|
116
107
|
end
|
108
|
+
|
109
|
+
describe ".set_authorization" do
|
110
|
+
context "when using http basic" do
|
111
|
+
|
112
|
+
let(:user) { 'dummy' }
|
113
|
+
let(:password) { 'secret' }
|
114
|
+
|
115
|
+
before(:each) do
|
116
|
+
Basecamper::Connection.stub(:use_oauth).and_return(false)
|
117
|
+
Basecamper::Connection.stub(:user).and_return(user)
|
118
|
+
Basecamper::Connection.stub(:password).and_return(password)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "sets the user to Connection.user" do
|
122
|
+
subject.should_receive(:user=).with(user)
|
123
|
+
subject.send(:set_authentication)
|
124
|
+
end
|
125
|
+
|
126
|
+
it "sets the password to Connection.password" do
|
127
|
+
subject.should_receive(:password=).with(password)
|
128
|
+
subject.send(:set_authentication)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
context "when using oauth" do
|
133
|
+
|
134
|
+
let(:token) { '123456' }
|
135
|
+
|
136
|
+
before(:each) do
|
137
|
+
Basecamper::Connection.stub(:use_oauth).and_return(true)
|
138
|
+
Basecamper::Connection.stub(:token).and_return(token)
|
139
|
+
end
|
140
|
+
|
141
|
+
it "sets a custom header with the oauth credentials" do
|
142
|
+
subject.send(:set_authentication)
|
143
|
+
subject.headers['authorization'].should == "Bearer '#{token}'"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
117
147
|
end
|
118
148
|
end
|
metadata
CHANGED
@@ -1,114 +1,89 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: basecamper
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Ryan Closner
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-07-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: activeresource
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 23
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 3
|
33
|
-
- 10
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 2.3.10
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: rake
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.3.10
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: cucumber
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
41
33
|
none: false
|
42
|
-
requirements:
|
34
|
+
requirements:
|
43
35
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 8
|
49
|
-
- 7
|
50
|
-
version: 0.8.7
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.10.0
|
51
38
|
type: :development
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: rspec
|
55
39
|
prerelease: false
|
56
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
41
|
none: false
|
58
|
-
requirements:
|
42
|
+
requirements:
|
59
43
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.10.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.8.7
|
67
54
|
type: :development
|
68
|
-
version_requirements: *id003
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bundler
|
71
55
|
prerelease: false
|
72
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.8.7
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
73
65
|
none: false
|
74
|
-
requirements:
|
66
|
+
requirements:
|
75
67
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
segments:
|
79
|
-
- 1
|
80
|
-
- 0
|
81
|
-
- 0
|
82
|
-
version: 1.0.0
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 2.5.0
|
83
70
|
type: :development
|
84
|
-
version_requirements: *id004
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: cucumber
|
87
71
|
prerelease: false
|
88
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
73
|
none: false
|
90
|
-
requirements:
|
74
|
+
requirements:
|
91
75
|
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
segments:
|
95
|
-
- 0
|
96
|
-
- 10
|
97
|
-
- 0
|
98
|
-
version: 0.10.0
|
99
|
-
type: :development
|
100
|
-
version_requirements: *id005
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.5.0
|
101
78
|
description: Basecamp API Wrapper
|
102
|
-
email:
|
79
|
+
email:
|
103
80
|
- ryan.closner@gmail.com
|
104
81
|
executables: []
|
105
|
-
|
106
82
|
extensions: []
|
107
|
-
|
108
83
|
extra_rdoc_files: []
|
109
|
-
|
110
|
-
files:
|
84
|
+
files:
|
111
85
|
- .gitignore
|
86
|
+
- .rvmrc
|
112
87
|
- Gemfile
|
113
88
|
- README.md
|
114
89
|
- Rakefile
|
@@ -145,55 +120,28 @@ files:
|
|
145
120
|
- spec/basecamper_spec.rb
|
146
121
|
- spec/fixtures/basecamp.yml.sample
|
147
122
|
- spec/spec_helper.rb
|
148
|
-
has_rdoc: true
|
149
123
|
homepage: http://rubygems.org/gems/basecamper
|
150
124
|
licenses: []
|
151
|
-
|
152
125
|
post_install_message:
|
153
126
|
rdoc_options: []
|
154
|
-
|
155
|
-
require_paths:
|
127
|
+
require_paths:
|
156
128
|
- lib
|
157
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
130
|
none: false
|
159
|
-
requirements:
|
160
|
-
- -
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
|
163
|
-
|
164
|
-
- 0
|
165
|
-
version: "0"
|
166
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
136
|
none: false
|
168
|
-
requirements:
|
169
|
-
- -
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
|
172
|
-
segments:
|
173
|
-
- 0
|
174
|
-
version: "0"
|
137
|
+
requirements:
|
138
|
+
- - ! '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
175
141
|
requirements: []
|
176
|
-
|
177
142
|
rubyforge_project: basecamper
|
178
|
-
rubygems_version: 1.
|
143
|
+
rubygems_version: 1.8.21
|
179
144
|
signing_key:
|
180
145
|
specification_version: 3
|
181
146
|
summary: Basecamp API Wrapper
|
182
|
-
test_files:
|
183
|
-
- features/support/env.rb
|
184
|
-
- spec/basecamper/connection_spec.rb
|
185
|
-
- spec/basecamper/resource_spec.rb
|
186
|
-
- spec/basecamper/resources/attachment_spec.rb
|
187
|
-
- spec/basecamper/resources/category_spec.rb
|
188
|
-
- spec/basecamper/resources/comment_spec.rb
|
189
|
-
- spec/basecamper/resources/company_spec.rb
|
190
|
-
- spec/basecamper/resources/message_spec.rb
|
191
|
-
- spec/basecamper/resources/milestone_spec.rb
|
192
|
-
- spec/basecamper/resources/person_spec.rb
|
193
|
-
- spec/basecamper/resources/project_spec.rb
|
194
|
-
- spec/basecamper/resources/time_entry_spec.rb
|
195
|
-
- spec/basecamper/resources/todo_item_spec.rb
|
196
|
-
- spec/basecamper/resources/todo_list_spec.rb
|
197
|
-
- spec/basecamper_spec.rb
|
198
|
-
- spec/fixtures/basecamp.yml.sample
|
199
|
-
- spec/spec_helper.rb
|
147
|
+
test_files: []
|