yt-support 0.1.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1d82d16731736e5ee31d63657ab86ff1dd911607
4
- data.tar.gz: f48f9376a410f3407cabb12d4763cd14f726be38
2
+ SHA256:
3
+ metadata.gz: a3ec0b0a78227d1ed98c1c3a30a52856cfcc29d2626caaa0d0fb7594f00fa089
4
+ data.tar.gz: 43c49aadfe5b17c1b4284ca714090dd7bd1e8bd393438d32d941e3b3773e17f1
5
5
  SHA512:
6
- metadata.gz: d9e1c590dc23269d3d22a41f57b212b6594ead53761a0470a6affd963dbf08fd8d5910d64ae184c668bb2d048e1acc138d9528cd4af90e38db93375b2d8925cf
7
- data.tar.gz: 579ab329148261c0a0d59460eca0c3b16d799ffb7ce8c6a898a961786de0e356c9749b3580d4606b28c28ba16aeb1285425cd3c737114c9b4a742f815f9df362
6
+ metadata.gz: 972b41f231f9ff50a3c4602ecbb17a8d3ddf235f85023370c3c8be331769e30c8a6fdb3e8cedc6ec1fa39144569ee825c9c245c22863fab91e1029762bb2c363
7
+ data.tar.gz: f47aa72b0c5c6c9fb87b5829bb7c80bd44ca825c2a4310e3d4426c8955ab20c246ca846c74e62fdcc8151a3a024054d265de112f1f38149709ded0a88c9a6593
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ 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
+
9
17
  ## 0.1.3 - 2017-06-02
10
18
 
11
19
  * [FEATURE] Add `Yt.configuration.access_token` and `.refresh_token`
@@ -47,8 +47,12 @@ module Yt
47
47
  # @return [String] the access token to act on behalf of a YouTube account.
48
48
  attr_accessor :access_token
49
49
 
50
- # @return [String] the token to refresh an expired access token.
51
- attr_accessor :refresh_token
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
52
56
 
53
57
  # Initialize the global configuration settings, using the values of
54
58
  # the specified following environment variables by default.
@@ -57,6 +61,8 @@ module Yt
57
61
  @client_secret = ENV['YT_CLIENT_SECRET']
58
62
  @api_key = ENV['YT_API_KEY']
59
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']
60
66
  end
61
67
 
62
68
  # @return [Boolean] whether the logging output is extra-verbose.
data/lib/yt/http_error.rb CHANGED
@@ -3,7 +3,7 @@ module Yt
3
3
  class HTTPError < StandardError
4
4
  attr_reader :response
5
5
 
6
- def initialize(msg, response:)
6
+ def initialize(msg, response: nil)
7
7
  super msg
8
8
  @response = response
9
9
  end
@@ -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, ->(body) {"Error: #{body}"}
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.
@@ -121,9 +121,12 @@ module Yt
121
121
 
122
122
  # Run the request and memoize the response or the server error received.
123
123
  def response
124
- @response ||= Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
125
- puts as_curl if Yt.configuration.developing?
126
- http.request http_request
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
127
130
  end
128
131
  rescue *server_errors => e
129
132
  raise Yt::ConnectionError, e.message
@@ -147,7 +150,20 @@ module Yt
147
150
  end
148
151
 
149
152
  def error_message
150
- @error_message.call response.body
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
151
167
  end
152
168
  end
153
169
  end
@@ -3,6 +3,6 @@ module Yt
3
3
  module Support
4
4
  # @return [String] the SemVer-compatible gem version.
5
5
  # @see http://semver.org
6
- VERSION = '0.1.3'
6
+ VERSION = '1.0.0'
7
7
  end
8
8
  end
data/yt-support.gemspec CHANGED
@@ -24,10 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
 
27
- spec.add_development_dependency 'bundler', '~> 1.14'
28
- spec.add_development_dependency 'rspec', '~> 3.5'
29
- spec.add_development_dependency 'rake', '~> 12.0'
30
- spec.add_development_dependency 'coveralls', '~> 0.8.20'
31
- spec.add_development_dependency 'pry-nav', '~> 0.2.4'
32
- spec.add_development_dependency 'yard', '~> 0.9.8'
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'
33
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.1.3
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: 2017-08-24 00:00:00.000000000 Z
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: '1.14'
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: '1.14'
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: '3.5'
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: '3.5'
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: '12.0'
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: '12.0'
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.8.20
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.8.20
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.9.8
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.9.8
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
- rubyforge_project:
146
- rubygems_version: 2.6.11
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: []