lockitron 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.lockitron.com/v1/locks/a397ef51-7b33-46dd-9a96-53eb1a7ea07f/lock
6
+ body:
7
+ encoding: US-ASCII
8
+ string: access_token=<OAUTH_TOKEN>
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.7
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Sun, 23 Jun 2013 22:06:12 GMT
25
+ Server:
26
+ - Apache
27
+ X-Ua-Compatible:
28
+ - IE=Edge,chrome=1
29
+ Etag:
30
+ - '"4835698658def1e57a3c33f917c6aa95"'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ X-Request-Id:
34
+ - 8eeae9a228ebdcc428e46a9e111b3052
35
+ X-Runtime:
36
+ - '0.321305'
37
+ X-Rack-Cache:
38
+ - invalidate, pass
39
+ Status:
40
+ - '200'
41
+ Strict-Transport-Security:
42
+ - max-age=15768000
43
+ Content-Length:
44
+ - '545'
45
+ Content-Type:
46
+ - application/json; charset=utf-8
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"activity":{"id":"dcf06438-e36f-4765-834c-d35d882ffd11","lock_name":"Gem
50
+ Test","lock_id":"a397ef51-7b33-46dd-9a96-53eb1a7ea07f","key_id":"cee75f80-c36d-41fc-9bb9-f250fafe2cbc","outcome":false,"human_outcome":"notice","type":4,"human_type":"lock-updated-locked","performed_at":1372025173.13896,"user":{"id":"6c121f58-0cc9-11e2-984d-4040401f6100","email":"kurtisnelson@gmail.com","phone":"+14075120689","human_phone":"(407)
51
+ 512-0689","first_name":"Kurt","last_name":"Nelson","full_name":"Kurt Nelson","best_name":"Kurt
52
+ Nelson","activated":true}}}'
53
+ http_version:
54
+ recorded_at: Sun, 23 Jun 2013 22:07:21 GMT
55
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.lockitron.com/v1/oauth/token
6
+ body:
7
+ encoding: UTF-8
8
+ string: grant_type=authorization_code&code=34c39703ee0215478642f01bfbdf0a824b872aa176e7310312e393a8c0639965&client_id=f0605493712611e3fd2e53b96b0b54836b11d1b05985cc1f908e7a149a7bf5c4&client_secret=<CLIENT_SECRET>&redirect_uri=http%3A%2F%2Flockitron.com
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.7
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Sun, 23 Jun 2013 21:13:21 GMT
25
+ Server:
26
+ - Apache
27
+ Pragma:
28
+ - no-cache
29
+ Cache-Control:
30
+ - no-store
31
+ X-Ua-Compatible:
32
+ - IE=Edge,chrome=1
33
+ Etag:
34
+ - '"d4cfa257668174eb65b1e1d52ca1ec98"'
35
+ X-Request-Id:
36
+ - b972cf3e216ae12e8c470acdb45a5fa9
37
+ X-Runtime:
38
+ - '0.071684'
39
+ X-Rack-Cache:
40
+ - invalidate, pass
41
+ Status:
42
+ - '200'
43
+ Strict-Transport-Security:
44
+ - max-age=15768000
45
+ Content-Length:
46
+ - '126'
47
+ Content-Type:
48
+ - application/json; charset=utf-8
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"access_token":"5e98e65391bcc32ebd89d781a1f97219b6e8c789331c574dbc1c5a43bafa7a6f","token_type":"bearer","expires_in":7776000}'
52
+ http_version:
53
+ recorded_at: Sun, 23 Jun 2013 21:14:41 GMT
54
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.lockitron.com/v1/locks/a397ef51-7b33-46dd-9a96-53eb1a7ea07f/unlock
6
+ body:
7
+ encoding: US-ASCII
8
+ string: access_token=<OAUTH_TOKEN>
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.7
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Sun, 23 Jun 2013 22:06:12 GMT
25
+ Server:
26
+ - Apache
27
+ X-Ua-Compatible:
28
+ - IE=Edge,chrome=1
29
+ Etag:
30
+ - '"5b658e78866d68be74b91664f528aa32"'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ X-Request-Id:
34
+ - 2a8a7beab9950f53c5102d1ee79e151c
35
+ X-Runtime:
36
+ - '0.349355'
37
+ X-Rack-Cache:
38
+ - invalidate, pass
39
+ Status:
40
+ - '200'
41
+ Strict-Transport-Security:
42
+ - max-age=15768000
43
+ Content-Length:
44
+ - '547'
45
+ Content-Type:
46
+ - application/json; charset=utf-8
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"activity":{"id":"75f3b8f5-b594-4326-ab6c-34ccddc5346d","lock_name":"Gem
50
+ Test","lock_id":"a397ef51-7b33-46dd-9a96-53eb1a7ea07f","key_id":"cee75f80-c36d-41fc-9bb9-f250fafe2cbc","outcome":false,"human_outcome":"notice","type":4,"human_type":"lock-updated-unlocked","performed_at":1372025172.30165,"user":{"id":"6c121f58-0cc9-11e2-984d-4040401f6100","email":"kurtisnelson@gmail.com","phone":"+14075120689","human_phone":"(407)
51
+ 512-0689","first_name":"Kurt","last_name":"Nelson","full_name":"Kurt Nelson","best_name":"Kurt
52
+ Nelson","activated":true}}}'
53
+ http_version:
54
+ recorded_at: Sun, 23 Jun 2013 22:07:20 GMT
55
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.lockitron.com/v1/locks?access_token=<OAUTH_TOKEN>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.7
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Sun, 23 Jun 2013 21:33:19 GMT
23
+ Server:
24
+ - Apache
25
+ X-Ua-Compatible:
26
+ - IE=Edge,chrome=1
27
+ Etag:
28
+ - '"fc85b665bd3fef203cf530086be83441"'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ X-Request-Id:
32
+ - 04720dd8e07b20712f97372a1a18ca15
33
+ X-Runtime:
34
+ - '0.048871'
35
+ X-Rack-Cache:
36
+ - miss
37
+ Status:
38
+ - '200'
39
+ Strict-Transport-Security:
40
+ - max-age=15768000
41
+ Content-Length:
42
+ - '1091'
43
+ Content-Type:
44
+ - application/json; charset=utf-8
45
+ body:
46
+ encoding: UTF-8
47
+ string: '[{"lock":{"id":"62191ffe-160e-4227-8e94-7537b83a9ba0","status":null,"name":"Gem
48
+ Test 2","latitude":null,"longitude":null,"keys":[{"id":"b59e31f1-dd34-4044-9e3c-5bb150a0ab70","start":null,"expire":null,"lock_id":"62191ffe-160e-4227-8e94-7537b83a9ba0","role":"owner","valid":true,"visible":true,"user":{"id":"6c121f58-0cc9-11e2-984d-4040401f6100","email":"kurtisnelson@gmail.com","phone":"+14075120689","human_phone":"(407)
49
+ 512-0689","first_name":"Kurt","last_name":"Nelson","full_name":"Kurt Nelson","best_name":"Kurt
50
+ Nelson","activated":true}}]}},{"lock":{"id":"a397ef51-7b33-46dd-9a96-53eb1a7ea07f","status":null,"name":"Gem
51
+ Test","latitude":null,"longitude":null,"keys":[{"id":"cee75f80-c36d-41fc-9bb9-f250fafe2cbc","start":null,"expire":null,"lock_id":"a397ef51-7b33-46dd-9a96-53eb1a7ea07f","role":"owner","valid":true,"visible":true,"user":{"id":"6c121f58-0cc9-11e2-984d-4040401f6100","email":"kurtisnelson@gmail.com","phone":"+14075120689","human_phone":"(407)
52
+ 512-0689","first_name":"Kurt","last_name":"Nelson","full_name":"Kurt Nelson","best_name":"Kurt
53
+ Nelson","activated":true}}]}}]'
54
+ http_version:
55
+ recorded_at: Sun, 23 Jun 2013 21:34:40 GMT
56
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,16 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe Lockitron::Auth do
4
+ let(:auth) {Lockitron::Auth.new(client_id: CLIENT_ID, client_secret: CLIENT_SECRET, redirect_uri: REDIRECT_URI)}
5
+ it "can provide auth URL" do
6
+ auth.authorization_url.should include CLIENT_ID
7
+ auth.authorization_url.should include REDIRECT_URI
8
+ end
9
+
10
+ it "takes an authorization code and gets a token" do
11
+ VCR.use_cassette 'oauth' do
12
+ auth.token_from_code AUTH_CODE
13
+ end
14
+ auth.token.should_not be_empty
15
+ end
16
+ end
@@ -0,0 +1,35 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe Lockitron::Lock do
4
+ let(:lock) { Lockitron::Lock.new(uuid: VIRTUAL_LOCK_UUID, name: VIRTUAL_LOCK_NAME)}
5
+ context "valid user" do
6
+ let(:valid_user) { Lockitron::User.new OAUTH_TOKEN }
7
+ describe '#as' do
8
+ it "unlocks" do
9
+ lock.as valid_user do |l|
10
+ VCR.use_cassette 'unlock' do
11
+ l.unlock
12
+ end
13
+ end
14
+ end
15
+
16
+ it "locks" do
17
+ lock.as valid_user do |l|
18
+ VCR.use_cassette 'lock' do
19
+ l.lock
20
+ end
21
+ end
22
+ end
23
+
24
+ it "invites users" do
25
+ lock.as valid_user do |l|
26
+ VCR.use_cassette 'invite' do
27
+ l.invite email: 'someone@example.com'
28
+ #invite someone for an hour from now
29
+ l.invite email: 'someone2@example.com', start: Time.now + 3200
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,12 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe Lockitron::User do
4
+ let(:user) { Lockitron::User.new OAUTH_TOKEN }
5
+ it "lists all the locks" do
6
+ VCR.use_cassette 'user' do
7
+ locks = user.locks
8
+ locks.count.should be > 0
9
+ locks.first.should be_instance_of Lockitron::Lock
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'coveralls'
4
+ Coveralls.wear! 'rails'
5
+ require 'pry'
6
+ require 'rspec'
7
+ require 'vcr'
8
+
9
+ require 'dotenv'
10
+ Dotenv.load
11
+
12
+ require 'lockitron'
13
+
14
+ #Setup test constants
15
+ CLIENT_ID = 'f0605493712611e3fd2e53b96b0b54836b11d1b05985cc1f908e7a149a7bf5c4'
16
+ ENV['CLIENT_SECRET'] ||= 'yay_client_secret'
17
+ CLIENT_SECRET = ENV['CLIENT_SECRET']
18
+ REDIRECT_URI = 'http://lockitron.com'
19
+ ENV['AUTH_CODE'] = 'yay_auth_code'
20
+ AUTH_CODE = ENV['AUTH_CODE']
21
+ ENV['OAUTH_TOKEN'] ||= 'yay_auth_token'
22
+ OAUTH_TOKEN = ENV['OAUTH_TOKEN']
23
+ VIRTUAL_LOCK_NAME = 'Gem Test'
24
+ VIRTUAL_LOCK_UUID = 'a397ef51-7b33-46dd-9a96-53eb1a7ea07f'
25
+
26
+ # Requires supporting files with custom matchers and macros, etc,
27
+ # in ./support/ and its subdirectories.
28
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
29
+ VCR.configure do |c|
30
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
31
+ c.hook_into :webmock
32
+ c.filter_sensitive_data('<OAUTH_TOKEN>') { ENV['OAUTH_TOKEN'] }
33
+ c.filter_sensitive_data('<CLIENT_SECRET>') { ENV['CLIENT_SECRET'] }
34
+ end
35
+
36
+ RSpec.configure do |config|
37
+
38
+ end
metadata CHANGED
@@ -1,110 +1,233 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lockitron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
- - Jarred Sumner
7
+ - Kurt Nelson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-08-09 00:00:00.000000000 Z
11
+ date: 2013-06-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rest-client
14
+ name: faraday
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: hashie
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
20
32
  - !ruby/object:Gem::Version
21
33
  version: '0'
22
34
  type: :runtime
23
35
  prerelease: false
24
36
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
37
  requirements:
27
- - - ! '>='
38
+ - - '>='
28
39
  - !ruby/object:Gem::Version
29
40
  version: '0'
30
41
  - !ruby/object:Gem::Dependency
31
- name: thor
42
+ name: oauth2
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
- - - ! '>='
45
+ - - '>='
36
46
  - !ruby/object:Gem::Version
37
47
  version: '0'
38
48
  type: :runtime
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
- - - ! '>='
52
+ - - '>='
44
53
  - !ruby/object:Gem::Version
45
54
  version: '0'
46
55
  - !ruby/object:Gem::Dependency
47
- name: json
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.8.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.8.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rdoc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '3.12'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '3.12'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
48
85
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
86
  requirements:
51
- - - ! '>='
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: dotenv
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
52
102
  - !ruby/object:Gem::Version
53
103
  version: '0'
54
- type: :runtime
104
+ type: :development
55
105
  prerelease: false
56
106
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
107
  requirements:
59
- - - ! '>='
108
+ - - '>='
60
109
  - !ruby/object:Gem::Version
61
110
  version: '0'
62
- description: Lockitron lets you unlock your front door from anywhere in the world,
63
- including your smartphone. We have an iPhone app, an Android app, a webapp, a mobile
64
- web app, a REST API, and now, a RubyGem.
65
- email: jarred@lockitron.com
66
- executables:
67
- - lockitron
111
+ - !ruby/object:Gem::Dependency
112
+ name: coveralls
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: vcr
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webmock
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: Communicate with a Lockitron
168
+ email: kurtisnelson@gmail.com
169
+ executables: []
68
170
  extensions: []
69
- extra_rdoc_files: []
171
+ extra_rdoc_files:
172
+ - LICENSE.txt
173
+ - README.md
70
174
  files:
175
+ - .document
71
176
  - .gitignore
177
+ - .rspec
178
+ - .ruby-version
179
+ - .travis.yml
72
180
  - Gemfile
73
- - LICENSE
181
+ - LICENSE.txt
74
182
  - README.md
75
183
  - Rakefile
76
- - bin/lockitron
77
- - gem.sublime-project
78
- - gem.sublime-workspace
79
184
  - lib/lockitron.rb
80
- - lib/lockitron/authentication.rb
81
- - lib/lockitron/lockitron.rb
82
- - lib/lockitron/locks.rb
185
+ - lib/lockitron/auth.rb
186
+ - lib/lockitron/lock.rb
187
+ - lib/lockitron/user.rb
83
188
  - lib/lockitron/version.rb
84
189
  - lockitron.gemspec
85
- homepage: http://github.com/jarred-sumner/lockitron
190
+ - spec/fixtures/vcr_cassettes/invite.yml
191
+ - spec/fixtures/vcr_cassettes/lock.yml
192
+ - spec/fixtures/vcr_cassettes/oauth.yml
193
+ - spec/fixtures/vcr_cassettes/unlock.yml
194
+ - spec/fixtures/vcr_cassettes/user.yml
195
+ - spec/request/auth_spec.rb
196
+ - spec/request/lock_spec.rb
197
+ - spec/request/user_spec.rb
198
+ - spec/spec_helper.rb
199
+ homepage: http://github.com/kurtisnelson/lockitron
86
200
  licenses:
87
201
  - MIT
202
+ metadata: {}
88
203
  post_install_message:
89
204
  rdoc_options: []
90
205
  require_paths:
91
206
  - lib
92
207
  required_ruby_version: !ruby/object:Gem::Requirement
93
- none: false
94
208
  requirements:
95
- - - ! '>='
209
+ - - '>='
96
210
  - !ruby/object:Gem::Version
97
211
  version: '0'
98
212
  required_rubygems_version: !ruby/object:Gem::Requirement
99
- none: false
100
213
  requirements:
101
- - - ! '>='
214
+ - - '>='
102
215
  - !ruby/object:Gem::Version
103
216
  version: '0'
104
217
  requirements: []
105
218
  rubyforge_project:
106
- rubygems_version: 1.8.24
219
+ rubygems_version: 2.0.3
107
220
  signing_key:
108
- specification_version: 3
109
- summary: Lock and unlock your lock your Lockitron-powered locks from bash and Ruby
110
- test_files: []
221
+ specification_version: 4
222
+ summary: Access the Lockitron API
223
+ test_files:
224
+ - spec/fixtures/vcr_cassettes/invite.yml
225
+ - spec/fixtures/vcr_cassettes/lock.yml
226
+ - spec/fixtures/vcr_cassettes/oauth.yml
227
+ - spec/fixtures/vcr_cassettes/unlock.yml
228
+ - spec/fixtures/vcr_cassettes/user.yml
229
+ - spec/request/auth_spec.rb
230
+ - spec/request/lock_spec.rb
231
+ - spec/request/user_spec.rb
232
+ - spec/spec_helper.rb
233
+ has_rdoc: