webfinger 1.2.0 → 2.1.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/.github/FUNDING.yml +3 -0
- data/.github/workflows/spec.yml +32 -0
- data/CHANGELOG.md +11 -0
- data/README.rdoc +1 -3
- data/VERSION +1 -1
- data/lib/webfinger/exception.rb +1 -1
- data/lib/webfinger/request.rb +10 -11
- data/lib/webfinger.rb +11 -13
- data/spec/helpers/webmock_helper.rb +1 -1
- data/spec/webfinger_spec.rb +4 -4
- data/webfinger.gemspec +2 -1
- metadata +23 -11
- data/.travis.yml +0 -8
- data/lib/webfinger/debugger/request_filter.rb +0 -20
- data/lib/webfinger/debugger.rb +0 -3
- data/spec/webfinger/debugger/request_filter_spec.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d259fcab87388831d5b980e891ee5f8022ada8935423ee665a95ab394d3cb1bc
|
4
|
+
data.tar.gz: 2f66aff8dbbc2e65cf2ee903803561a769e4cf6da665714464407e1b1ccb6806
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edf7b4a21d1890549757a4d316b14dbc2cfb584e7fb84a2badf5a68d8bca201272b5ffa1717c89c4edd73b764df50b53cd71802a25cdeaf709a635310655e88f
|
7
|
+
data.tar.gz: 2fbab83bf5ddb9dc7badb4f611281caf7fc04eeafecbfe72af9a006f68a6fecc24b88fd831c7bf60e06eef56e6590f2bd601fe82ea6115ce4fb5beae57807b11
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
name: Spec
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
permissions:
|
10
|
+
contents: read
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
spec:
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
os: ['ubuntu-20.04']
|
17
|
+
ruby-version: ['2.6', '2.7', '3.0', '3.1']
|
18
|
+
# ubuntu 22.04 only supports ssl 3 and thus only ruby 3.1
|
19
|
+
include:
|
20
|
+
- os: 'ubuntu-22.04'
|
21
|
+
ruby-version: '3.1'
|
22
|
+
runs-on: ${{ matrix.os }}
|
23
|
+
|
24
|
+
steps:
|
25
|
+
- uses: actions/checkout@v3
|
26
|
+
- name: Set up Ruby
|
27
|
+
uses: ruby/setup-ruby@v1
|
28
|
+
with:
|
29
|
+
ruby-version: ${{ matrix.ruby-version }}
|
30
|
+
bundler-cache: true
|
31
|
+
- name: Run Specs
|
32
|
+
run: bundle exec rake spec
|
data/CHANGELOG.md
ADDED
data/README.rdoc
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
An Ruby WebFinger client library.
|
4
4
|
|
5
|
-
{<img src="https://secure.travis-ci.org/nov/webfinger.png" />}[http://travis-ci.org/nov/webfinger]
|
6
|
-
|
7
5
|
Following the latest WebFinger spec discussed at IETF WebFinger WG.
|
8
6
|
http://tools.ietf.org/html/draft-ietf-appsawg-webfinger
|
9
7
|
|
@@ -75,4 +73,4 @@ You can also specify URL builder to force non-HTTPS access. (NOTE: allow non-HTT
|
|
75
73
|
|
76
74
|
== Copyright
|
77
75
|
|
78
|
-
Copyright (c) 2012 nov matake. See LICENSE for details.
|
76
|
+
Copyright (c) 2012 nov matake. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
2.1.0
|
data/lib/webfinger/exception.rb
CHANGED
data/lib/webfinger/request.rb
CHANGED
@@ -10,7 +10,7 @@ module WebFinger
|
|
10
10
|
|
11
11
|
def discover!
|
12
12
|
handle_response do
|
13
|
-
WebFinger.http_client.
|
13
|
+
WebFinger.http_client.get(endpoint.to_s)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -50,23 +50,22 @@ module WebFinger
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def handle_response
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
case e.res.try(:status)
|
53
|
+
json = yield.body
|
54
|
+
Response.new json
|
55
|
+
rescue Faraday::Error => e
|
56
|
+
case e.response_status
|
58
57
|
when nil
|
59
58
|
raise e
|
60
59
|
when 400
|
61
|
-
raise BadRequest.new('Bad Request',
|
60
|
+
raise BadRequest.new('Bad Request', e.response_body)
|
62
61
|
when 401
|
63
|
-
raise Unauthorized.new('Unauthorized',
|
62
|
+
raise Unauthorized.new('Unauthorized', e.response_body)
|
64
63
|
when 403
|
65
|
-
raise Forbidden.new('Forbidden',
|
64
|
+
raise Forbidden.new('Forbidden', e.response_body)
|
66
65
|
when 404
|
67
|
-
raise NotFound.new('Not Found',
|
66
|
+
raise NotFound.new('Not Found', e.response_body)
|
68
67
|
else
|
69
|
-
raise HttpError.new(e.
|
68
|
+
raise HttpError.new(e.response_status, e.response_body, e.response_body)
|
70
69
|
end
|
71
70
|
end
|
72
71
|
end
|
data/lib/webfinger.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'json'
|
2
|
-
require '
|
2
|
+
require 'faraday'
|
3
|
+
require 'faraday/follow_redirects'
|
3
4
|
require 'active_support'
|
4
5
|
require 'active_support/core_ext'
|
5
6
|
|
@@ -42,24 +43,21 @@ module WebFinger
|
|
42
43
|
end
|
43
44
|
|
44
45
|
def http_client
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
_http_client_.request_filter << Debugger::RequestFilter.new if debugging?
|
54
|
-
http_config.try(:call, _http_client_)
|
55
|
-
_http_client_
|
46
|
+
Faraday.new(headers: {user_agent: "WebFinger #{VERSION}"}) do |faraday|
|
47
|
+
faraday.response :raise_error
|
48
|
+
faraday.response :json
|
49
|
+
faraday.response :follow_redirects
|
50
|
+
faraday.response :logger, WebFinger.logger if debugging?
|
51
|
+
faraday.adapter Faraday.default_adapter
|
52
|
+
http_config.try(:call, faraday)
|
53
|
+
end
|
56
54
|
end
|
55
|
+
|
57
56
|
def http_config(&block)
|
58
57
|
@http_config ||= block
|
59
58
|
end
|
60
59
|
end
|
61
60
|
|
62
|
-
require 'webfinger/debugger'
|
63
61
|
require 'webfinger/exception'
|
64
62
|
require 'webfinger/request'
|
65
63
|
require 'webfinger/response'
|
data/spec/webfinger_spec.rb
CHANGED
@@ -158,16 +158,16 @@ describe WebFinger do
|
|
158
158
|
subject { WebFinger.http_client }
|
159
159
|
|
160
160
|
describe '#request_filter' do
|
161
|
-
subject { WebFinger.http_client.
|
161
|
+
subject { WebFinger.http_client.builder.handlers.collect(&:klass) }
|
162
162
|
|
163
163
|
context 'as default' do
|
164
|
-
it { should_not include
|
164
|
+
it { should_not include Faraday::Response::Logger }
|
165
165
|
end
|
166
166
|
|
167
167
|
context 'when debugging' do
|
168
168
|
before { WebFinger.debug! }
|
169
|
-
it { should include
|
169
|
+
it { should include Faraday::Response::Logger }
|
170
170
|
end
|
171
171
|
end
|
172
172
|
end
|
173
|
-
end
|
173
|
+
end
|
data/webfinger.gemspec
CHANGED
@@ -12,7 +12,8 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
13
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
14
|
gem.require_paths = ['lib']
|
15
|
-
gem.add_runtime_dependency '
|
15
|
+
gem.add_runtime_dependency 'faraday', '~> 2.0'
|
16
|
+
gem.add_runtime_dependency 'faraday-follow_redirects'
|
16
17
|
gem.add_runtime_dependency 'activesupport'
|
17
18
|
gem.add_development_dependency 'rake'
|
18
19
|
gem.add_development_dependency 'rspec'
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webfinger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nov matake
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday-follow_redirects
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - ">="
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
33
|
+
version: '0'
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: activesupport
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,16 +129,16 @@ executables: []
|
|
115
129
|
extensions: []
|
116
130
|
extra_rdoc_files: []
|
117
131
|
files:
|
132
|
+
- ".github/FUNDING.yml"
|
133
|
+
- ".github/workflows/spec.yml"
|
118
134
|
- ".gitignore"
|
119
|
-
-
|
135
|
+
- CHANGELOG.md
|
120
136
|
- Gemfile
|
121
137
|
- LICENSE.txt
|
122
138
|
- README.rdoc
|
123
139
|
- Rakefile
|
124
140
|
- VERSION
|
125
141
|
- lib/webfinger.rb
|
126
|
-
- lib/webfinger/debugger.rb
|
127
|
-
- lib/webfinger/debugger/request_filter.rb
|
128
142
|
- lib/webfinger/exception.rb
|
129
143
|
- lib/webfinger/request.rb
|
130
144
|
- lib/webfinger/response.rb
|
@@ -134,7 +148,6 @@ files:
|
|
134
148
|
- spec/mock_json/email_config.json
|
135
149
|
- spec/mock_json/open_id.json
|
136
150
|
- spec/spec_helper.rb
|
137
|
-
- spec/webfinger/debugger/request_filter_spec.rb
|
138
151
|
- spec/webfinger/response_spec.rb
|
139
152
|
- spec/webfinger_spec.rb
|
140
153
|
- webfinger.gemspec
|
@@ -157,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
170
|
- !ruby/object:Gem::Version
|
158
171
|
version: '0'
|
159
172
|
requirements: []
|
160
|
-
rubygems_version: 3.1.
|
173
|
+
rubygems_version: 3.1.6
|
161
174
|
signing_key:
|
162
175
|
specification_version: 4
|
163
176
|
summary: Ruby WebFinger client library, following IETF WebFinger WG spec updates.
|
@@ -168,6 +181,5 @@ test_files:
|
|
168
181
|
- spec/mock_json/email_config.json
|
169
182
|
- spec/mock_json/open_id.json
|
170
183
|
- spec/spec_helper.rb
|
171
|
-
- spec/webfinger/debugger/request_filter_spec.rb
|
172
184
|
- spec/webfinger/response_spec.rb
|
173
185
|
- spec/webfinger_spec.rb
|
data/.travis.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module WebFinger
|
2
|
-
module Debugger
|
3
|
-
class RequestFilter
|
4
|
-
# Callback called in HTTPClient (before sending a request)
|
5
|
-
# request:: HTTP::Message
|
6
|
-
def filter_request(request)
|
7
|
-
started = "======= [WebFinger] HTTP REQUEST STARTED ======="
|
8
|
-
WebFinger.logger.info [started, request.dump].join("\n")
|
9
|
-
end
|
10
|
-
|
11
|
-
# Callback called in HTTPClient (after received a response)
|
12
|
-
# request:: HTTP::Message
|
13
|
-
# response:: HTTP::Message
|
14
|
-
def filter_response(request, response)
|
15
|
-
finished = "======= [WebFinger] HTTP REQUEST FINISHED ======="
|
16
|
-
WebFinger.logger.info ['-' * 50, response.dump, finished].join("\n")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/lib/webfinger/debugger.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WebFinger::Debugger::RequestFilter do
|
4
|
-
let(:resource_endpoint) { 'https://example.com/resources' }
|
5
|
-
let(:request) { HTTP::Message.new_request(:get, URI.parse(resource_endpoint)) }
|
6
|
-
let(:response) { HTTP::Message.new_response({:hello => 'world'}.to_json) }
|
7
|
-
let(:request_filter) { WebFinger::Debugger::RequestFilter.new }
|
8
|
-
|
9
|
-
describe '#filter_request' do
|
10
|
-
it 'should log request' do
|
11
|
-
expect(WebFinger.logger).to receive(:info).with(
|
12
|
-
"======= [WebFinger] HTTP REQUEST STARTED =======\n" +
|
13
|
-
request.dump
|
14
|
-
)
|
15
|
-
request_filter.filter_request(request)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe '#filter_response' do
|
20
|
-
it 'should log response' do
|
21
|
-
expect(WebFinger.logger).to receive(:info).with(
|
22
|
-
"--------------------------------------------------\n" +
|
23
|
-
response.dump +
|
24
|
-
"\n======= [WebFinger] HTTP REQUEST FINISHED ======="
|
25
|
-
)
|
26
|
-
request_filter.filter_response(request, response)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|