yt-support 0.1.2 → 1.0.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 +5 -5
- data/CHANGELOG.md +12 -0
- data/LICENSE.txt +1 -1
- data/lib/yt/configuration.rb +12 -0
- data/lib/yt/http_error.rb +6 -0
- data/lib/yt/http_request.rb +37 -8
- data/lib/yt/support/version.rb +3 -2
- data/yt-support.gemspec +8 -7
- metadata +26 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a3ec0b0a78227d1ed98c1c3a30a52856cfcc29d2626caaa0d0fb7594f00fa089
|
4
|
+
data.tar.gz: 43c49aadfe5b17c1b4284ca714090dd7bd1e8bd393438d32d941e3b3773e17f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 972b41f231f9ff50a3c4602ecbb17a8d3ddf235f85023370c3c8be331769e30c8a6fdb3e8cedc6ec1fa39144569ee825c9c245c22863fab91e1029762bb2c363
|
7
|
+
data.tar.gz: f47aa72b0c5c6c9fb87b5829bb7c80bd44ca825c2a4310e3d4426c8955ab20c246ca846c74e62fdcc8151a3a024054d265de112f1f38149709ded0a88c9a6593
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,18 @@ For more information about changelogs, check
|
|
6
6
|
[Keep a Changelog](http://keepachangelog.com) and
|
7
7
|
[Vandamme](http://tech-angels.github.io/vandamme).
|
8
8
|
|
9
|
+
## 1.0.0 - 2024/12/10
|
10
|
+
|
11
|
+
* [FEATURE] Add `mock_auth_error` and `mock_auth_error` to `Yt.configuration`.
|
12
|
+
|
13
|
+
## 0.1.4 - 2018/10/03
|
14
|
+
|
15
|
+
* [FEATURE] Add ActiveSupport::Notification based instrumentation.
|
16
|
+
|
17
|
+
## 0.1.3 - 2017-06-02
|
18
|
+
|
19
|
+
* [FEATURE] Add `Yt.configuration.access_token` and `.refresh_token`
|
20
|
+
|
9
21
|
## 0.1.2 - 2017-04-02
|
10
22
|
|
11
23
|
* [FEATURE] Add Yt::ConnectionError to deal with connection/server errors
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2017 Fullscreen, Inc.
|
3
|
+
Copyright (c) 2017-present Fullscreen, Inc.
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/lib/yt/configuration.rb
CHANGED
@@ -44,6 +44,16 @@ module Yt
|
|
44
44
|
# @return [String] the level of output to print for debugging purposes.
|
45
45
|
attr_accessor :log_level
|
46
46
|
|
47
|
+
# @return [String] the access token to act on behalf of a YouTube account.
|
48
|
+
attr_accessor :access_token
|
49
|
+
|
50
|
+
# @return [String] a mock error to raise when trying to authenticate.
|
51
|
+
attr_accessor :mock_auth_error
|
52
|
+
|
53
|
+
# @return [String] a mock email to return when authenticating.
|
54
|
+
# If 'invalid-email' then try to authenticate will raise an error.
|
55
|
+
attr_accessor :mock_auth_email
|
56
|
+
|
47
57
|
# Initialize the global configuration settings, using the values of
|
48
58
|
# the specified following environment variables by default.
|
49
59
|
def initialize
|
@@ -51,6 +61,8 @@ module Yt
|
|
51
61
|
@client_secret = ENV['YT_CLIENT_SECRET']
|
52
62
|
@api_key = ENV['YT_API_KEY']
|
53
63
|
@log_level = ENV['YT_LOG_LEVEL']
|
64
|
+
@mock_auth_error = ENV['YT_MOCK_AUTH_ERROR']
|
65
|
+
@mock_auth_email = ENV['YT_MOCK_AUTH_EMAIL']
|
54
66
|
end
|
55
67
|
|
56
68
|
# @return [Boolean] whether the logging output is extra-verbose.
|
data/lib/yt/http_error.rb
CHANGED
data/lib/yt/http_request.rb
CHANGED
@@ -38,7 +38,7 @@ module Yt
|
|
38
38
|
@headers = options.fetch :headers, {}
|
39
39
|
@body = options[:body]
|
40
40
|
@request_format = options.fetch :request_format, :json
|
41
|
-
@error_message = options.fetch :error_message, ->(
|
41
|
+
@error_message = options.fetch :error_message, ->(code) {"Error: #{code}"}
|
42
42
|
end
|
43
43
|
|
44
44
|
# Sends the request and returns the response with the body parsed from JSON.
|
@@ -50,7 +50,7 @@ module Yt
|
|
50
50
|
parse_response!
|
51
51
|
end
|
52
52
|
else
|
53
|
-
raise Yt::HTTPError,
|
53
|
+
raise Yt::HTTPError.new(error_message, response: response)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -85,13 +85,25 @@ module Yt
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
def as_curl
|
89
|
+
'curl'.tap do |curl|
|
90
|
+
curl << " -X #{http_request.method}"
|
91
|
+
http_request.each_header{|k, v| curl << %Q{ -H "#{k}: #{v}"}}
|
92
|
+
curl << %Q{ -d '#{http_request.body}'} if http_request.body
|
93
|
+
curl << %Q{ "#{uri.to_s}"}
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
88
97
|
# Adds the request body to the request in the appropriate format.
|
89
98
|
# if the request body is a JSON Object, transform its keys into camel-case,
|
90
99
|
# since this is the common format for JSON APIs.
|
91
100
|
def set_request_body!(request)
|
92
|
-
|
93
|
-
|
94
|
-
|
101
|
+
case @request_format
|
102
|
+
when :json
|
103
|
+
request.body = @body.to_json
|
104
|
+
when :form
|
105
|
+
request.set_form_data @body
|
106
|
+
end if @body
|
95
107
|
end
|
96
108
|
|
97
109
|
# Adds the request headers to the request in the appropriate format.
|
@@ -109,8 +121,12 @@ module Yt
|
|
109
121
|
|
110
122
|
# Run the request and memoize the response or the server error received.
|
111
123
|
def response
|
112
|
-
|
113
|
-
|
124
|
+
instrument do |data|
|
125
|
+
@response ||= Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
126
|
+
puts as_curl if Yt.configuration.developing?
|
127
|
+
http.request http_request
|
128
|
+
end
|
129
|
+
data[:response] = @response
|
114
130
|
end
|
115
131
|
rescue *server_errors => e
|
116
132
|
raise Yt::ConnectionError, e.message
|
@@ -134,7 +150,20 @@ module Yt
|
|
134
150
|
end
|
135
151
|
|
136
152
|
def error_message
|
137
|
-
@error_message.call response.
|
153
|
+
@error_message.call response.code
|
154
|
+
end
|
155
|
+
|
156
|
+
def instrument(&block)
|
157
|
+
data = {
|
158
|
+
request: http_request,
|
159
|
+
method: http_request.method,
|
160
|
+
request_uri: uri
|
161
|
+
}
|
162
|
+
if defined?(ActiveSupport::Notifications)
|
163
|
+
ActiveSupport::Notifications.instrument 'request.yt', data, &block
|
164
|
+
else
|
165
|
+
block.call(data)
|
166
|
+
end
|
138
167
|
end
|
139
168
|
end
|
140
169
|
end
|
data/lib/yt/support/version.rb
CHANGED
data/yt-support.gemspec
CHANGED
@@ -17,15 +17,16 @@ Gem::Specification.new do |spec|
|
|
17
17
|
|
18
18
|
spec.required_ruby_version = '>= 2.2.2'
|
19
19
|
|
20
|
-
spec.files = `git ls-files -z`.split("\x0").reject
|
20
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
21
|
+
f.match(%r{^(test|spec|features)/})
|
22
|
+
end
|
21
23
|
spec.bindir = 'exe'
|
22
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
25
|
spec.require_paths = ['lib']
|
24
26
|
|
25
|
-
spec.add_development_dependency 'bundler'
|
26
|
-
spec.add_development_dependency 'rspec'
|
27
|
-
spec.add_development_dependency 'rake'
|
28
|
-
spec.add_development_dependency 'coveralls'
|
29
|
-
spec.add_development_dependency '
|
30
|
-
spec.add_development_dependency 'yard', '~> 0.9.5'
|
27
|
+
spec.add_development_dependency 'bundler'
|
28
|
+
spec.add_development_dependency 'rspec'
|
29
|
+
spec.add_development_dependency 'rake'
|
30
|
+
spec.add_development_dependency 'coveralls'
|
31
|
+
spec.add_development_dependency 'yard'
|
31
32
|
end
|
metadata
CHANGED
@@ -1,100 +1,86 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yt-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claudio Baccigalupo
|
8
8
|
- Kang-Kyu Lee
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rspec
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: coveralls
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0
|
62
|
+
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: pry-nav
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 0.2.4
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: 0.2.4
|
69
|
+
version: '0'
|
84
70
|
- !ruby/object:Gem::Dependency
|
85
71
|
name: yard
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
87
73
|
requirements:
|
88
|
-
- - "
|
74
|
+
- - ">="
|
89
75
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0
|
76
|
+
version: '0'
|
91
77
|
type: :development
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
94
80
|
requirements:
|
95
|
-
- - "
|
81
|
+
- - ">="
|
96
82
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0
|
83
|
+
version: '0'
|
98
84
|
description: |-
|
99
85
|
Yt::Support provides common functionality to Yt,
|
100
86
|
Yt::Auth. It is considered suitable for internal use only at this time.
|
@@ -127,7 +113,7 @@ homepage: https://github.com/fullscreen/yt-support
|
|
127
113
|
licenses:
|
128
114
|
- MIT
|
129
115
|
metadata: {}
|
130
|
-
post_install_message:
|
116
|
+
post_install_message:
|
131
117
|
rdoc_options: []
|
132
118
|
require_paths:
|
133
119
|
- lib
|
@@ -142,9 +128,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
128
|
- !ruby/object:Gem::Version
|
143
129
|
version: '0'
|
144
130
|
requirements: []
|
145
|
-
|
146
|
-
|
147
|
-
signing_key:
|
131
|
+
rubygems_version: 3.5.23
|
132
|
+
signing_key:
|
148
133
|
specification_version: 4
|
149
134
|
summary: Support utilities for Yt gems
|
150
135
|
test_files: []
|