twitch_oauth2 0.1.0 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/README.md +37 -17
- data/lib/twitch_oauth2/client.rb +31 -33
- data/lib/twitch_oauth2/error.rb +8 -0
- data/lib/twitch_oauth2/version.rb +1 -1
- metadata +60 -48
- data/.cirrus.yml +0 -32
- data/.editorconfig +0 -17
- data/.gitignore +0 -2
- data/.rspec +0 -3
- data/.rubocop.yml +0 -47
- data/Gemfile +0 -6
- data/Rakefile +0 -8
- data/twitch_oauth2.gemspec +0 -57
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db75a943539bebe359931ac1b78fd29b6d55add3922c1dd56c3ff457c190ebbd
|
4
|
+
data.tar.gz: d171153225fac0312176a923848b6c9f3be048946e23fbec72f5b7413801665d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d191956b126deec94d160e85af9d147ac1e920db8b5031d68602c6459bb2c172a8025b5205be596d32fb8b1f2040c29f401afb533853ac2f2e813899b36d276
|
7
|
+
data.tar.gz: 75625c8ef174b8115ae4b6fdac56d3fd6e9ab6239854b92619f3e04c978a3ef252bf5255a87ae3685a389f203365739d705a9d588f47f3cb4597c09685b00d38
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## Unreleased
|
4
|
+
|
5
|
+
## 0.4.0 (2022-07-23)
|
6
|
+
|
7
|
+
* Support Ruby 3.
|
8
|
+
* Drop Ruby 2.5 support.
|
9
|
+
* Update Faraday to version 2.
|
10
|
+
* Resolve new RuboCop offenses.
|
11
|
+
* Update development dependencies.
|
12
|
+
|
13
|
+
## 0.3.0 (2020-12-05)
|
14
|
+
|
15
|
+
* Raise an error for `:user` token type with a login link inside
|
16
|
+
See [this discussion](https://github.com/mauricew/ruby-twitch-api/pull/22#discussion_r526518859).
|
17
|
+
* Update (development) dependencies.
|
18
|
+
|
19
|
+
## 0.2.0 (2020-11-05)
|
20
|
+
|
21
|
+
* Add an ability to generate Application tokens.
|
22
|
+
Useful for the actual, Helix, Twitch API.
|
23
|
+
* Update dependencies.
|
24
|
+
|
25
|
+
## 0.1.0 (2020-05-23)
|
26
|
+
|
27
|
+
* Initial release
|
data/README.md
CHANGED
@@ -1,9 +1,17 @@
|
|
1
1
|
# TwitchOAuth2
|
2
2
|
|
3
|
+
[](https://cirrus-ci.com/github/AlexWayfer/twitch_oauth2)
|
4
|
+
[](https://codecov.io/gh/AlexWayfer/twitch_oauth2)
|
5
|
+
[](https://codeclimate.com/github/AlexWayfer/twitch_oauth2)
|
6
|
+
[](https://depfu.com/repos/github/AlexWayfer/twitch_oauth2)
|
7
|
+
[](https://inch-ci.org/github/AlexWayfer/twitch_oauth2)
|
8
|
+
[](https://github.com/AlexWayfer/twitch_oauth2/blob/main/LICENSE.txt)
|
9
|
+
[](https://rubygems.org/gems/twitch_oauth2)
|
10
|
+
|
3
11
|
Twitch authentication with OAuth 2.
|
4
12
|
Result tokens can be used for API libraries, chat libraries or something else.
|
5
13
|
|
6
|
-
[Twitch Authentication Documentation]
|
14
|
+
[Twitch Authentication Documentation](https://dev.twitch.tv/docs/authentication)
|
7
15
|
|
8
16
|
## Installation
|
9
17
|
|
@@ -47,14 +55,32 @@ tokens = previously_saved_tokens
|
|
47
55
|
# => { access_token: 'abcdef', refresh_token: 'ghikjl' }
|
48
56
|
# Can be empty.
|
49
57
|
|
50
|
-
client.check_tokens **tokens
|
58
|
+
client.check_tokens **tokens, token_type: :user
|
51
59
|
```
|
52
60
|
|
61
|
+
`:token_type` is optional and is `:application` by default,
|
62
|
+
but a number of available API end-points is limited in this case.
|
63
|
+
|
64
|
+
Also, Application Access Token has no `refresh_token`, but this gem just receive a new one
|
65
|
+
if a given one is invalid.
|
66
|
+
|
53
67
|
#### The first run
|
54
68
|
|
55
69
|
You can pass nothing to `#check_tokens`, then client will generate new ones.
|
56
|
-
|
57
|
-
|
70
|
+
|
71
|
+
If you've specified `:token_type` as `:application` or have not specify it at all (default),
|
72
|
+
there will be an Application Access Token (without refresh token).
|
73
|
+
|
74
|
+
Otherwise, for User Access Token here will be raised a `TwitchOAuth2::Error` with Twitch link
|
75
|
+
inside `#metadata[:link]`.
|
76
|
+
|
77
|
+
If you have a web-application with N users, you can redirect them to this link
|
78
|
+
and use `redirect_uri` to your application for callbacks.
|
79
|
+
|
80
|
+
Otherwise, if you have something like CLI tool, you can print instructions with a link for user.
|
81
|
+
|
82
|
+
Then you can use `#token(token_type: :user, code: 'a code from params in redirect uri')`
|
83
|
+
and get your `:access_token` and `:refresh_token`.
|
58
84
|
|
59
85
|
#### Reusing tokens
|
60
86
|
|
@@ -72,22 +98,18 @@ client.refreshed_tokens refresh_token: 'ghikjl'
|
|
72
98
|
This is used internally in `#check_tokens`, and can be used separately
|
73
99
|
for failed requests to API.
|
74
100
|
|
101
|
+
And, because Application Access Tokens have no refresh tokens — this method will not work for them.
|
102
|
+
|
75
103
|
## Development
|
76
104
|
|
77
105
|
After checking out the repo, run `bundle install` to install dependencies.
|
78
|
-
Then, run `bundle exec rake spec` to run the tests.
|
79
106
|
|
80
|
-
|
81
|
-
with filtered sensitive data, so you don't need for real credentials
|
82
|
-
(like Twitch Client ID and Client Secret) for changing existing methods,
|
83
|
-
but you need for them to add new requests.
|
84
|
-
You can read how to get them [here][Twitch Authentication Documentation].
|
107
|
+
Then, run `toys rspec` to run the tests.
|
85
108
|
|
86
|
-
To install this gem onto your local machine, run `
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
to [rubygems.org](https://rubygems.org).
|
109
|
+
To install this gem onto your local machine, run `toys gem install`.
|
110
|
+
|
111
|
+
To release a new version, run `toys gem release %version%`.
|
112
|
+
See how it works [here](https://github.com/AlexWayfer/gem_toys#release).
|
91
113
|
|
92
114
|
## Contributing
|
93
115
|
|
@@ -97,5 +119,3 @@ Bug reports and pull requests are welcome on [GitHub](https://github.com/AlexWay
|
|
97
119
|
|
98
120
|
The gem is available as open source under the terms of the
|
99
121
|
[MIT License](https://opensource.org/licenses/MIT).
|
100
|
-
|
101
|
-
[Twitch Authentication Documentation]: https://dev.twitch.tv/docs/authentication
|
data/lib/twitch_oauth2/client.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'faraday'
|
4
|
-
require '
|
4
|
+
require 'faraday/parse_dates'
|
5
5
|
require 'securerandom'
|
6
6
|
|
7
7
|
module TwitchOAuth2
|
@@ -12,7 +12,7 @@ module TwitchOAuth2
|
|
12
12
|
) do |connection|
|
13
13
|
connection.request :json
|
14
14
|
|
15
|
-
connection.response :
|
15
|
+
connection.response :parse_dates
|
16
16
|
|
17
17
|
connection.response :json,
|
18
18
|
content_type: /\bjson$/,
|
@@ -26,46 +26,49 @@ module TwitchOAuth2
|
|
26
26
|
@client_secret = client_secret
|
27
27
|
@redirect_uri = redirect_uri
|
28
28
|
@scopes = scopes
|
29
|
-
|
30
|
-
@state = SecureRandom.alphanumeric(32)
|
31
29
|
end
|
32
30
|
|
33
|
-
def check_tokens(access_token: nil, refresh_token: nil)
|
31
|
+
def check_tokens(access_token: nil, refresh_token: nil, token_type: :user)
|
34
32
|
if access_token
|
35
33
|
validate_result = validate access_token: access_token
|
36
34
|
|
37
35
|
if validate_result[:status] == 401
|
38
|
-
return refreshed_tokens(refresh_token: refresh_token)
|
39
|
-
|
40
|
-
|
41
|
-
if validate_result[:expires_in].positive?
|
36
|
+
return refreshed_tokens(refresh_token: refresh_token) if token_type == :user
|
37
|
+
elsif validate_result[:expires_in].positive?
|
42
38
|
return { access_token: access_token, refresh_token: refresh_token }
|
43
39
|
end
|
44
40
|
end
|
45
41
|
|
46
|
-
flow
|
42
|
+
flow token_type: token_type
|
47
43
|
end
|
48
44
|
|
49
45
|
def refreshed_tokens(refresh_token:)
|
50
46
|
refresh(refresh_token: refresh_token).slice(:access_token, :refresh_token)
|
51
47
|
end
|
52
48
|
|
53
|
-
|
49
|
+
def token(token_type:, code: nil)
|
50
|
+
response = CONNECTION.post(
|
51
|
+
'token',
|
52
|
+
client_id: @client_id,
|
53
|
+
client_secret: @client_secret,
|
54
|
+
code: code,
|
55
|
+
grant_type: grant_type_by_token_type(token_type),
|
56
|
+
redirect_uri: @redirect_uri
|
57
|
+
)
|
54
58
|
|
55
|
-
|
56
|
-
link = authorize
|
59
|
+
return response.body if response.success?
|
57
60
|
|
58
|
-
|
59
|
-
|
60
|
-
#{link}
|
61
|
-
2. Login to Twitch.
|
62
|
-
3. Copy the `code` parameter from redirected URL.
|
63
|
-
4. Insert below:
|
64
|
-
TEXT
|
61
|
+
raise Error, response.body[:message]
|
62
|
+
end
|
65
63
|
|
66
|
-
|
64
|
+
private
|
65
|
+
|
66
|
+
def flow(token_type:)
|
67
|
+
if token_type == :user
|
68
|
+
raise Error.new('Use `error.metadata[:link]` for getting new tokens', link: authorize)
|
69
|
+
end
|
67
70
|
|
68
|
-
token(
|
71
|
+
token(token_type: token_type).slice(:access_token, :refresh_token)
|
69
72
|
end
|
70
73
|
|
71
74
|
def authorize
|
@@ -83,17 +86,12 @@ module TwitchOAuth2
|
|
83
86
|
raise Error, response.body[:message]
|
84
87
|
end
|
85
88
|
|
86
|
-
def
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
grant_type: :authorization_code,
|
93
|
-
redirect_uri: @redirect_uri
|
94
|
-
)
|
95
|
-
|
96
|
-
response.body
|
89
|
+
def grant_type_by_token_type(token_type)
|
90
|
+
case token_type
|
91
|
+
when :user then :authorization_code
|
92
|
+
when :application then :client_credentials
|
93
|
+
else raise Error, 'unsupported token type'
|
94
|
+
end
|
97
95
|
end
|
98
96
|
|
99
97
|
def validate(access_token:)
|
data/lib/twitch_oauth2/error.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module TwitchOAuth2
|
4
|
+
## Error during Twitch OAuth2 operations
|
4
5
|
class Error < StandardError
|
6
|
+
attr_reader :metadata
|
7
|
+
|
8
|
+
def initialize(message, metadata = {})
|
9
|
+
super message
|
10
|
+
|
11
|
+
@metadata = metadata
|
12
|
+
end
|
5
13
|
end
|
6
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitch_oauth2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Popov
|
8
|
-
autorequire:
|
9
|
-
bindir:
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,84 +16,98 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: faraday-parse_dates
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: pry-byebug
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '3.9'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '3.9'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '2.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '2.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: gem_toys
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.12.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.12.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: toys
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.13.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.13.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: codecov
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
103
|
+
version: 0.6.0
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
110
|
+
version: 0.6.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rspec
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,75 +123,75 @@ dependencies:
|
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '3.9'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: simplecov
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
131
|
+
version: 0.21.2
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
138
|
+
version: 0.21.2
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: vcr
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '6.0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '6.0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name: rubocop
|
154
|
+
name: rubocop
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
159
|
+
version: 1.32.0
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 1.32.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: rubocop-performance
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: '1.0'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
178
|
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
180
|
+
version: '1.0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
182
|
+
name: rubocop-rspec
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
187
|
+
version: '2.0'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
194
|
+
version: '2.0'
|
181
195
|
description: |
|
182
196
|
Twitch authentication with OAuth 2.
|
183
197
|
Result tokens can be used for API libraries, chat libraries
|
@@ -188,27 +202,22 @@ executables: []
|
|
188
202
|
extensions: []
|
189
203
|
extra_rdoc_files: []
|
190
204
|
files:
|
191
|
-
-
|
192
|
-
- ".editorconfig"
|
193
|
-
- ".gitignore"
|
194
|
-
- ".rspec"
|
195
|
-
- ".rubocop.yml"
|
196
|
-
- Gemfile
|
205
|
+
- CHANGELOG.md
|
197
206
|
- LICENSE.txt
|
198
207
|
- README.md
|
199
|
-
- Rakefile
|
200
208
|
- lib/twitch_oauth2.rb
|
201
209
|
- lib/twitch_oauth2/client.rb
|
202
210
|
- lib/twitch_oauth2/error.rb
|
203
211
|
- lib/twitch_oauth2/version.rb
|
204
|
-
- twitch_oauth2.gemspec
|
205
212
|
homepage: https://github.com/AlexWayfer/twitch_oauth2
|
206
213
|
licenses:
|
207
214
|
- MIT
|
208
215
|
metadata:
|
209
216
|
source_code_uri: https://github.com/AlexWayfer/twitch_oauth2
|
210
217
|
homepage_uri: https://github.com/AlexWayfer/twitch_oauth2
|
211
|
-
|
218
|
+
changelog_uri: https://github.com/AlexWayfer/twitch_oauth2/blob/main/CHANGELOG.md
|
219
|
+
rubygems_mfa_required: 'true'
|
220
|
+
post_install_message:
|
212
221
|
rdoc_options: []
|
213
222
|
require_paths:
|
214
223
|
- lib
|
@@ -216,15 +225,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
216
225
|
requirements:
|
217
226
|
- - ">="
|
218
227
|
- !ruby/object:Gem::Version
|
219
|
-
version: '2.
|
228
|
+
version: '2.6'
|
229
|
+
- - "<"
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: '4'
|
220
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
233
|
requirements:
|
222
234
|
- - ">="
|
223
235
|
- !ruby/object:Gem::Version
|
224
236
|
version: '0'
|
225
237
|
requirements: []
|
226
|
-
rubygems_version: 3.
|
227
|
-
signing_key:
|
238
|
+
rubygems_version: 3.3.7
|
239
|
+
signing_key:
|
228
240
|
specification_version: 4
|
229
241
|
summary: Twitch authentication with OAuth 2.
|
230
242
|
test_files: []
|
data/.cirrus.yml
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
bundle_cache: &bundle_cache
|
2
|
-
bundle_cache:
|
3
|
-
folder: /usr/local/bundle
|
4
|
-
fingerprint_script:
|
5
|
-
- echo $CIRRUS_OS
|
6
|
-
- ruby -v
|
7
|
-
- cat Gemfile
|
8
|
-
- cat *.gemspec
|
9
|
-
install_script: bundle update
|
10
|
-
|
11
|
-
test_task:
|
12
|
-
container:
|
13
|
-
matrix:
|
14
|
-
image: ruby:2.5
|
15
|
-
image: ruby:2.6
|
16
|
-
image: ruby:2.7
|
17
|
-
<<: *bundle_cache
|
18
|
-
environment:
|
19
|
-
CODECOV_TOKEN: ENCRYPTED[b26ecd3e49540f09f5c9bf830caa29f5daedaf6769d6b1ba1a650eb6e81432ffb857f19421aed8e8dfddf21724fb57b6]
|
20
|
-
test_script: bundle exec rake
|
21
|
-
|
22
|
-
rubocop_task:
|
23
|
-
container:
|
24
|
-
image: ruby:latest
|
25
|
-
<<: *bundle_cache
|
26
|
-
rubocop_script: bundle exec rubocop
|
27
|
-
|
28
|
-
markdown_lint_task:
|
29
|
-
container:
|
30
|
-
image: ruby:latest
|
31
|
-
<<: *bundle_cache
|
32
|
-
rubocop_script: bundle exec mdl .
|
data/.editorconfig
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
root = true
|
2
|
-
|
3
|
-
[*]
|
4
|
-
indent_style = tab
|
5
|
-
indent_size = 2
|
6
|
-
end_of_line = lf
|
7
|
-
charset = utf-8
|
8
|
-
trim_trailing_whitespace = true
|
9
|
-
insert_final_newline = true
|
10
|
-
|
11
|
-
[*.y{a,}ml]
|
12
|
-
indent_style = space
|
13
|
-
indent_size = 2
|
14
|
-
|
15
|
-
[*.md]
|
16
|
-
indent_style = space
|
17
|
-
indent_size = 4
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
require:
|
2
|
-
- rubocop-performance
|
3
|
-
- rubocop-rspec
|
4
|
-
|
5
|
-
Layout/IndentationStyle:
|
6
|
-
EnforcedStyle: tabs
|
7
|
-
IndentationWidth: 2
|
8
|
-
Layout/IndentationWidth:
|
9
|
-
Width: 1
|
10
|
-
Layout/MultilineMethodCallIndentation:
|
11
|
-
EnforcedStyle: indented
|
12
|
-
Layout/ArgumentAlignment:
|
13
|
-
EnforcedStyle: with_fixed_indentation
|
14
|
-
Layout/SpaceAroundMethodCallOperator:
|
15
|
-
Enabled: true
|
16
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
17
|
-
Enabled: true
|
18
|
-
|
19
|
-
Lint/StructNewOverride:
|
20
|
-
Enabled: true
|
21
|
-
Lint/RaiseException:
|
22
|
-
Enabled: true
|
23
|
-
|
24
|
-
Style/HashEachMethods:
|
25
|
-
Enabled: true
|
26
|
-
Style/HashTransformKeys:
|
27
|
-
Enabled: true
|
28
|
-
Style/HashTransformValues:
|
29
|
-
Enabled: true
|
30
|
-
Style/ExponentialNotation:
|
31
|
-
Enabled: true
|
32
|
-
Style/SlicingWithRange:
|
33
|
-
Enabled: true
|
34
|
-
|
35
|
-
Metrics/BlockLength:
|
36
|
-
Exclude:
|
37
|
-
- '*.gemspec'
|
38
|
-
- spec/**/*.rb
|
39
|
-
|
40
|
-
AllCops:
|
41
|
-
TargetRubyVersion: 2.5
|
42
|
-
|
43
|
-
RSpec/FilePath:
|
44
|
-
CustomTransform:
|
45
|
-
TwitchOAuth2: twitch_oauth2
|
46
|
-
RSpec/NestedGroups:
|
47
|
-
Max: 4
|
data/Gemfile
DELETED
data/Rakefile
DELETED
data/twitch_oauth2.gemspec
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'lib/twitch_oauth2/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = 'twitch_oauth2'
|
7
|
-
spec.version = TwitchOAuth2::VERSION
|
8
|
-
spec.authors = ['Alexander Popov']
|
9
|
-
spec.email = ['alex.wayfer@gmail.com']
|
10
|
-
|
11
|
-
spec.summary = 'Twitch authentication with OAuth 2.'
|
12
|
-
spec.description = <<~DESC
|
13
|
-
Twitch authentication with OAuth 2.
|
14
|
-
Result tokens can be used for API libraries, chat libraries
|
15
|
-
or something else.
|
16
|
-
DESC
|
17
|
-
spec.license = 'MIT'
|
18
|
-
|
19
|
-
spec.required_ruby_version = '>= 2.5'
|
20
|
-
|
21
|
-
source_code_uri = 'https://github.com/AlexWayfer/twitch_oauth2'
|
22
|
-
|
23
|
-
spec.homepage = source_code_uri
|
24
|
-
|
25
|
-
spec.metadata['source_code_uri'] = source_code_uri
|
26
|
-
|
27
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
28
|
-
|
29
|
-
# TODO: Put your gem's CHANGELOG.md URL here.
|
30
|
-
# spec.metadata["changelog_uri"] = ""
|
31
|
-
|
32
|
-
# Specify which files should be added to the gem when it is released.
|
33
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added
|
34
|
-
# into git.
|
35
|
-
spec.files = Dir.chdir(__dir__) do
|
36
|
-
`git ls-files -z`.split("\x0").reject do |file|
|
37
|
-
file.match(%r{^(test|spec|features)/})
|
38
|
-
end
|
39
|
-
end
|
40
|
-
spec.bindir = 'exe'
|
41
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |file| File.basename(file) }
|
42
|
-
spec.require_paths = ['lib']
|
43
|
-
|
44
|
-
spec.add_dependency 'faraday', '~> 1.0'
|
45
|
-
spec.add_dependency 'faraday_middleware', '~> 1.0'
|
46
|
-
|
47
|
-
spec.add_development_dependency 'codecov', '~> 0.1.0'
|
48
|
-
spec.add_development_dependency 'mdl', '~> 0.9.0'
|
49
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
50
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
51
|
-
spec.add_development_dependency 'rspec', '~> 3.9'
|
52
|
-
spec.add_development_dependency 'rubocop', '~> 0.83.0'
|
53
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.0'
|
54
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 1.0'
|
55
|
-
spec.add_development_dependency 'simplecov', '~> 0.18.0'
|
56
|
-
spec.add_development_dependency 'vcr', '~> 5.1'
|
57
|
-
end
|