worochi 0.0.13 → 0.0.14
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.
- checksums.yaml +4 -4
- data/lib/worochi/config/google_drive.yml +11 -0
- data/lib/worochi/configurator.rb +20 -1
- data/lib/worochi/oauth.rb +14 -2
- data/lib/worochi/version.rb +1 -1
- data/spec/cassettes/Worochi_OAuth/_refresh/tries_to_refresh_the_access_token.yml +56 -0
- data/spec/worochi/config_spec.rb +24 -0
- data/spec/worochi/oauth_spec.rb +12 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a16bf51d367b8b62f009a425dd929ed96d38f376
|
4
|
+
data.tar.gz: 9e24cbc3ebee89c808a6f1c9e5622ab78b67680f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cbfcb2ba4fc6d306bedfde432eae0f8cc66586a84f7a06b3b156235cf8762ada3da0ef09ee56d9dea665755b10ccea8d572bda49f76e5f8b336186b9709a8e3
|
7
|
+
data.tar.gz: d28e49ee2f24e2eae8d982d3706407c4f76019d51f80f118c771e8833829d0bfa7e1dd2cab9effa292bd07563e4180e0bc57c92d006bfb2c230f2bf0241c4911
|
data/lib/worochi/configurator.rb
CHANGED
@@ -36,7 +36,8 @@ class Worochi
|
|
36
36
|
@services = files.map do |file|
|
37
37
|
File.basename(file, '.yml').to_sym
|
38
38
|
end
|
39
|
-
@services
|
39
|
+
@all_services = @services.clone.freeze
|
40
|
+
@services.freeze
|
40
41
|
end
|
41
42
|
|
42
43
|
# Array of service meta information.
|
@@ -52,6 +53,24 @@ class Worochi
|
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
56
|
+
# Only enable the list of services specified instead of all supported
|
57
|
+
# services.
|
58
|
+
#
|
59
|
+
# @return [Array<Symbol>] enabled services
|
60
|
+
def enable_services(list)
|
61
|
+
@all_services || services
|
62
|
+
@services = @all_services.reject { |service| !list.include?(service) }
|
63
|
+
@services.freeze
|
64
|
+
end
|
65
|
+
|
66
|
+
# Re-enable all supported services.
|
67
|
+
#
|
68
|
+
# @return [Array<Symbol>] enabled services
|
69
|
+
def reset_services
|
70
|
+
@services || services
|
71
|
+
@services = @all_services.clone
|
72
|
+
end
|
73
|
+
|
55
74
|
# Returns display name for the service.
|
56
75
|
#
|
57
76
|
# @overload service_display_name(service)
|
data/lib/worochi/oauth.rb
CHANGED
@@ -43,12 +43,24 @@ class Worochi
|
|
43
43
|
client.site = options.token_site || options.site
|
44
44
|
opts = {}
|
45
45
|
opts[:redirect_uri] = options.redirect_uri if options.redirect_uri
|
46
|
-
|
47
|
-
Hashie::Mash.new(token.to_hash)
|
46
|
+
Hashie::Mash.new(client.auth_code.get_token(code, opts).to_hash)
|
48
47
|
end
|
49
48
|
|
50
49
|
alias_method :get_token, :flow_end
|
51
50
|
|
51
|
+
# Refreshes the access token using the refresh token.
|
52
|
+
#
|
53
|
+
# @param hash [Hash] stored hash for the token
|
54
|
+
# @return [Hashie::Mash] Updated OAuth2 token
|
55
|
+
def refresh!(hash)
|
56
|
+
token = OAuth2::AccessToken.from_hash(@client, hash)
|
57
|
+
begin
|
58
|
+
token.refresh!
|
59
|
+
rescue OAuth2::Error
|
60
|
+
end
|
61
|
+
Hashie::Mash.new(token.to_hash)
|
62
|
+
end
|
63
|
+
|
52
64
|
private
|
53
65
|
# @return [String] scope
|
54
66
|
def scope
|
data/lib/worochi/version.rb
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://github.com/login/oauth/access_token
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: client_id=<GITHUB_ID>&client_secret=<GITHUB_SECRET>&grant_type=refresh_token&refresh_token=bbbbb
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.8
|
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
|
+
Server:
|
24
|
+
- GitHub.com
|
25
|
+
Date:
|
26
|
+
- Mon, 19 Aug 2013 18:24:37 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/x-www-form-urlencoded; charset=utf-8
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Status:
|
32
|
+
- 200 OK
|
33
|
+
Cache-Control:
|
34
|
+
- private, max-age=0, must-revalidate
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=2592000
|
37
|
+
X-Frame-Options:
|
38
|
+
- deny
|
39
|
+
Set-Cookie:
|
40
|
+
- dotcom_user=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
|
41
|
+
- logged_in=no; domain=.github.com; path=/; expires=Fri, 19-Aug-2033 18:24:37
|
42
|
+
GMT; secure; HttpOnly
|
43
|
+
X-Runtime:
|
44
|
+
- '8'
|
45
|
+
Etag:
|
46
|
+
- '"ed2cf91250498a9276e3b4fa6de2c2b6"'
|
47
|
+
Content-Length:
|
48
|
+
- '27'
|
49
|
+
Vary:
|
50
|
+
- Accept-Encoding
|
51
|
+
body:
|
52
|
+
encoding: UTF-8
|
53
|
+
string: error=bad_verification_code
|
54
|
+
http_version:
|
55
|
+
recorded_at: Mon, 19 Aug 2013 18:24:37 GMT
|
56
|
+
recorded_with: VCR 2.5.0
|
data/spec/worochi/config_spec.rb
CHANGED
@@ -7,6 +7,10 @@ class Worochi
|
|
7
7
|
expect(Config.services.class).to be(Array)
|
8
8
|
expect(Config.services.first.class).to be(Symbol)
|
9
9
|
end
|
10
|
+
it 'is frozen' do
|
11
|
+
list = Config.services
|
12
|
+
expect{list << :test}.to raise_error(RuntimeError)
|
13
|
+
end
|
10
14
|
end
|
11
15
|
|
12
16
|
describe '.list_services' do
|
@@ -18,6 +22,26 @@ class Worochi
|
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
25
|
+
describe '.enable_services' do
|
26
|
+
it 'disables all services not in the given list' do
|
27
|
+
all_services = Config.services
|
28
|
+
Config.enable_services([all_services.first])
|
29
|
+
expect(Config.services).not_to eq(all_services)
|
30
|
+
expect(Config.services).to include(all_services.first)
|
31
|
+
Config.enable_services(all_services)
|
32
|
+
expect(Config.services).to eq(all_services)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '.reset_services' do
|
37
|
+
it 'enables all supported services' do
|
38
|
+
all_services = Config.services
|
39
|
+
Config.enable_services([all_services.first])
|
40
|
+
Config.reset_services
|
41
|
+
expect(Config.services).to eq(all_services)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
21
45
|
describe '.service_display_name' do
|
22
46
|
it 'returns display name given an ID' do
|
23
47
|
expect(Config.service_display_name(1)).to eq('GitHub')
|
data/spec/worochi/oauth_spec.rb
CHANGED
@@ -30,4 +30,16 @@ describe Worochi::OAuth do
|
|
30
30
|
expect{auth.flow_end('abc')}.to raise_error(OAuth2::Error)
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
describe '#refresh', :vcr do
|
35
|
+
it 'tries to refresh the access token' do
|
36
|
+
token = {
|
37
|
+
token_type: "bearer",
|
38
|
+
access_token: "aaaaa",
|
39
|
+
refresh_token: "bbbbb",
|
40
|
+
expires_at: 1376702712
|
41
|
+
}
|
42
|
+
expect(auth.refresh!(token)).to include(:refresh_token)
|
43
|
+
end
|
44
|
+
end
|
33
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worochi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raven Jiang
|
@@ -217,6 +217,7 @@ files:
|
|
217
217
|
- lib/worochi/version.rb
|
218
218
|
- lib/worochi/configurator.rb
|
219
219
|
- lib/worochi.rb
|
220
|
+
- lib/worochi/config/google_drive.yml
|
220
221
|
- lib/worochi/config/box.yml
|
221
222
|
- lib/worochi/config/github.yml
|
222
223
|
- lib/worochi/config/dropbox.yml
|
@@ -281,6 +282,7 @@ files:
|
|
281
282
|
- spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_String_parameter.yml
|
282
283
|
- spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_Hash_parameter.yml
|
283
284
|
- spec/cassettes/Worochi_OAuth/_flow_end/rejects_bad_code.yml
|
285
|
+
- spec/cassettes/Worochi_OAuth/_refresh/tries_to_refresh_the_access_token.yml
|
284
286
|
homepage: https://github.com/Pixelapse/worochi
|
285
287
|
licenses:
|
286
288
|
- MIT
|
@@ -366,4 +368,5 @@ test_files:
|
|
366
368
|
- spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_String_parameter.yml
|
367
369
|
- spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_Hash_parameter.yml
|
368
370
|
- spec/cassettes/Worochi_OAuth/_flow_end/rejects_bad_code.yml
|
371
|
+
- spec/cassettes/Worochi_OAuth/_refresh/tries_to_refresh_the_access_token.yml
|
369
372
|
has_rdoc:
|