indieweb-endpoints 2.0.0 → 3.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
2
  SHA256:
3
- metadata.gz: ebbf39154a7abb7cd7c25650da81dde5156ba5eccd201b9d87a2ed3b73ca9032
4
- data.tar.gz: e75747ab28f3c62bbae3076af862a48e69e80135dfb525ab29ecaa82bfd01231
3
+ metadata.gz: 5e5738ea28dd0ec5b0d473991732d7dccfc9f0375a91d25aab02d435b769fc01
4
+ data.tar.gz: 730bc87082fa7601804103a92bbfadde1b9a59ce697edff95adbf433df359169
5
5
  SHA512:
6
- metadata.gz: ab93434f6f1bd1da8956da5b2ffda84dea062feb5bda374401a117dafd92f0238b967d50a6c7b87e21698396ef0f7ffc2feda72faf5e04f21d0ec28abac2ca47
7
- data.tar.gz: 935751df89746a8d8ec03e15febf905ce4b863971ab81910298c035ae28ce9227cb9e53ad1b6fc58464b034821534406f0edadb178d193834d7d63bdfb24c744
6
+ metadata.gz: 18f837e57571ac559a9eff564e3330266168b1ff19a61df12989f1a951f48817c84eb830d64a251afcf0a2c7200ad0b8db9c54ab6076bf914d4b43028593e0e0
7
+ data.tar.gz: 3eff42bf94a9f8477a5cf86f20a0f9755b7adb228072fd2189808f6957fba849d17bcc59cef7e4195e29f2ab04deed219e48d08ede9a0d81f7e0035842638886
data/.reek.yml CHANGED
@@ -1,11 +1,6 @@
1
1
  detectors:
2
2
  IrresponsibleModule:
3
3
  enabled: false
4
- UtilityFunction:
5
- exclude:
6
- - FixtureHelpers#read_fixture
7
- - IndieWeb::Endpoints::Services::ResponseBodyParserService#parse
8
- - IndieWeb::Endpoints::Services::ResponseHeadersParserService#parse
9
4
 
10
5
  exclude_paths:
11
6
  - vendor/
@@ -2,15 +2,14 @@ require:
2
2
  - rubocop-performance
3
3
  - rubocop-rspec
4
4
 
5
- Layout/HashAlignment:
6
- EnforcedHashRocketStyle: table
5
+ AllCops:
6
+ NewCops: enable
7
7
 
8
8
  Layout/LineLength:
9
9
  Enabled: false
10
10
 
11
11
  Metrics/BlockLength:
12
12
  Exclude:
13
- - indieweb-endpoints.gemspec
14
13
  - spec/**/*.rb
15
14
 
16
15
  Naming/RescuedExceptionsVariableName:
@@ -1 +1 @@
1
- 2.4.9
1
+ 2.4.10
data/.simplecov CHANGED
@@ -2,9 +2,11 @@ require 'simplecov-console'
2
2
 
3
3
  formatters = [SimpleCov::Formatter::HTMLFormatter]
4
4
 
5
+ # rubocop:disable Style/IfUnlessModifier
5
6
  if RSpec.configuration.files_to_run.length > 1
6
7
  formatters << SimpleCov::Formatter::Console
7
8
  end
9
+ # rubocop:enable Style/IfUnlessModifier
8
10
 
9
11
  SimpleCov.start do
10
12
  formatter SimpleCov::Formatter::MultiFormatter.new(formatters)
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0 / 2020-05-14
4
+
5
+ - Update Absolutely and LinkHeaderParser dependencies (9e0a64a)
6
+ - Move development dependencies to `Gemfile` (67067f3)
7
+ - Update development Ruby version to 2.4.10 (f5430f9)
8
+
3
9
  ## 2.0.0 / 2020-01-25
4
10
 
5
11
  - Downgrade HTTP gem version constraint to ~> 4.3 (cb63230)
@@ -8,9 +8,9 @@ There are a couple ways you can help improve indieweb-endpoints-ruby:
8
8
 
9
9
  ## Getting Started
10
10
 
11
- indieweb-endpoints-ruby is developed using Ruby 2.4.9 and is additionally tested against Ruby 2.5, 2.6, and 2.7 using [Travis CI](https://travis-ci.com/indieweb/indieweb-endpoints-ruby).
11
+ indieweb-endpoints-ruby is developed using Ruby 2.4.10 and is additionally tested against Ruby 2.5, 2.6, and 2.7 using [Travis CI](https://travis-ci.com/indieweb/indieweb-endpoints-ruby).
12
12
 
13
- Before making changes to indieweb-endpoints-ruby, you'll want to install Ruby 2.4.9. It's recommended that you use a Ruby version managment tool like [rbenv](https://github.com/rbenv/rbenv), [chruby](https://github.com/postmodern/chruby), or [rvm](https://github.com/rvm/rvm). Once you've installed Ruby 2.4.9 using your method of choice, install the project's gems by running:
13
+ Before making changes to indieweb-endpoints-ruby, you'll want to install Ruby 2.4.10. It's recommended that you use a Ruby version managment tool like [rbenv](https://github.com/rbenv/rbenv), [chruby](https://github.com/postmodern/chruby), or [rvm](https://github.com/rvm/rvm). Once you've installed Ruby 2.4.10 using your method of choice, install the project's gems by running:
14
14
 
15
15
  ```sh
16
16
  bundle install
data/Gemfile CHANGED
@@ -2,3 +2,13 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in indieweb-endpoints.gemspec
4
4
  gemspec
5
+
6
+ gem 'rake', '~> 13.0'
7
+ gem 'reek', '~> 6.0'
8
+ gem 'rspec', '~> 3.9'
9
+ gem 'rubocop', '~> 0.83.0'
10
+ gem 'rubocop-performance', '~> 1.5'
11
+ gem 'rubocop-rspec', '~> 1.39'
12
+ gem 'simplecov', '~> 0.18.5'
13
+ gem 'simplecov-console', '~> 0.7.2'
14
+ gem 'webmock', '~> 3.8'
data/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  Before installing and using indieweb-endpoints-ruby, you'll want to have [Ruby](https://www.ruby-lang.org) 2.4 (or newer) installed. It's recommended that you use a Ruby version managment tool like [rbenv](https://github.com/rbenv/rbenv), [chruby](https://github.com/postmodern/chruby), or [rvm](https://github.com/rvm/rvm).
20
20
 
21
- indieweb-endpoints-ruby is developed using Ruby 2.4.9 and is additionally tested against Ruby 2.5, 2.6, and 2.7 using [Travis CI](https://travis-ci.com/indieweb/indieweb-endpoints-ruby).
21
+ indieweb-endpoints-ruby is developed using Ruby 2.4.10 and is additionally tested against Ruby 2.5, 2.6, and 2.7 using [Travis CI](https://travis-ci.com/indieweb/indieweb-endpoints-ruby).
22
22
 
23
23
  ## Installation
24
24
 
@@ -1,10 +1,7 @@
1
- lib = File.expand_path('lib', __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
-
4
- require 'indieweb/endpoints/version'
1
+ require_relative 'lib/indieweb/endpoints/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
- spec.required_ruby_version = ['>= 2.4', '< 2.8']
4
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.4', '< 2.8')
8
5
 
9
6
  spec.name = 'indieweb-endpoints'
10
7
  spec.version = IndieWeb::Endpoints::VERSION
@@ -16,28 +13,18 @@ Gem::Specification.new do |spec|
16
13
  spec.homepage = 'https://github.com/indieweb/indieweb-endpoints-ruby'
17
14
  spec.license = 'MIT'
18
15
 
19
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin|spec)/}) }
16
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
17
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin|spec)/}) }
18
+ end
20
19
 
21
20
  spec.require_paths = ['lib']
22
21
 
23
- spec.metadata = {
24
- 'bug_tracker_uri' => "#{spec.homepage}/issues",
25
- 'changelog_uri' => "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md"
26
- }
27
-
28
- spec.add_development_dependency 'rake', '~> 13.0'
29
- spec.add_development_dependency 'reek', '~> 5.6'
30
- spec.add_development_dependency 'rspec', '~> 3.9'
31
- spec.add_development_dependency 'rubocop', '~> 0.79.0'
32
- spec.add_development_dependency 'rubocop-performance', '~> 1.5'
33
- spec.add_development_dependency 'rubocop-rspec', '~> 1.37'
34
- spec.add_development_dependency 'simplecov', '~> 0.17.1'
35
- spec.add_development_dependency 'simplecov-console', '~> 0.6.0'
36
- spec.add_development_dependency 'webmock', '~> 3.8'
22
+ spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues"
23
+ spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md"
37
24
 
38
- spec.add_runtime_dependency 'absolutely', '~> 3.1'
25
+ spec.add_runtime_dependency 'absolutely', '~> 4.0'
39
26
  spec.add_runtime_dependency 'addressable', '~> 2.7'
40
- spec.add_runtime_dependency 'http', '~> 4.3'
41
- spec.add_runtime_dependency 'link-header-parser', '~> 0.3.0'
27
+ spec.add_runtime_dependency 'http', '~> 4.4'
28
+ spec.add_runtime_dependency 'link-header-parser', '~> 1.0.0'
42
29
  spec.add_runtime_dependency 'nokogiri', '~> 1.10'
43
30
  end
@@ -9,8 +9,6 @@ require 'nokogiri'
9
9
  require 'indieweb/endpoints/version'
10
10
  require 'indieweb/endpoints/exceptions'
11
11
 
12
- require 'indieweb/endpoints/concerns/registerable'
13
-
14
12
  require 'indieweb/endpoints/services/http_request_service'
15
13
  require 'indieweb/endpoints/services/response_body_parser_service'
16
14
  require 'indieweb/endpoints/services/response_headers_parser_service'
@@ -18,6 +16,7 @@ require 'indieweb/endpoints/services/response_headers_parser_service'
18
16
  require 'indieweb/endpoints/client'
19
17
  require 'indieweb/endpoints/parsers'
20
18
 
19
+ require 'indieweb/endpoints/parsers/base_parser'
21
20
  require 'indieweb/endpoints/parsers/authorization_endpoint_parser'
22
21
  require 'indieweb/endpoints/parsers/micropub_parser'
23
22
  require 'indieweb/endpoints/parsers/microsub_parser'
@@ -16,7 +16,7 @@ module IndieWeb
16
16
  end
17
17
 
18
18
  def response
19
- @response ||= Services::HttpRequestService.new.get(uri)
19
+ @response ||= Services::HttpRequestService.get(uri)
20
20
  end
21
21
 
22
22
  private
@@ -1,40 +1,12 @@
1
1
  module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
- extend Concerns::Registerable
5
-
6
- class BaseParser
7
- def initialize(response)
8
- raise ArgumentError, "response must be an HTTP::Response (given #{response.class.name})" unless response.is_a?(HTTP::Response)
9
-
10
- @response = response
11
- end
12
-
13
- def results
14
- mapped_results.shift
15
- end
16
-
17
- private
18
-
19
- attr_reader :response
20
-
21
- def mapped_results
22
- @mapped_results ||= results_from_http_request.map { |endpoint| Absolutely.to_abs(base: response.uri.to_s, relative: endpoint) }.uniq.sort
23
- rescue Absolutely::InvalidURIError => exception
24
- raise InvalidURIError, exception
25
- end
26
-
27
- def results_from_body
28
- @results_from_body ||= Services::ResponseBodyParserService.new.parse(response, self.class.identifier)
29
- end
30
-
31
- def results_from_headers
32
- @results_from_headers ||= Services::ResponseHeadersParserService.new.parse(response, self.class.identifier)
33
- end
4
+ def self.register(klass)
5
+ registered[klass.identifier] = klass
6
+ end
34
7
 
35
- def results_from_http_request
36
- @results_from_http_request ||= [results_from_headers, results_from_body].flatten.compact
37
- end
8
+ def self.registered
9
+ @registered ||= {}
38
10
  end
39
11
  end
40
12
  end
@@ -2,9 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
4
  class AuthorizationEndpointParser < BaseParser
5
- def self.identifier
6
- :authorization_endpoint
7
- end
5
+ @identifier = :authorization_endpoint
8
6
 
9
7
  Parsers.register(self)
10
8
  end
@@ -0,0 +1,43 @@
1
+ module IndieWeb
2
+ module Endpoints
3
+ module Parsers
4
+ class BaseParser
5
+ class << self
6
+ attr_reader :identifier
7
+ end
8
+
9
+ def initialize(response)
10
+ raise ArgumentError, "response must be an HTTP::Response (given #{response.class.name})" unless response.is_a?(HTTP::Response)
11
+
12
+ @response = response
13
+ end
14
+
15
+ def results
16
+ mapped_results.shift
17
+ end
18
+
19
+ private
20
+
21
+ attr_reader :response
22
+
23
+ def mapped_results
24
+ @mapped_results ||= results_from_http_request.map { |endpoint| Absolutely.to_abs(base: response.uri.to_s, relative: endpoint) }.uniq.sort
25
+ rescue Absolutely::InvalidURIError => exception
26
+ raise InvalidURIError, exception
27
+ end
28
+
29
+ def results_from_body
30
+ @results_from_body ||= Services::ResponseBodyParserService.parse(response, self.class.identifier)
31
+ end
32
+
33
+ def results_from_headers
34
+ @results_from_headers ||= Services::ResponseHeadersParserService.parse(response, self.class.identifier)
35
+ end
36
+
37
+ def results_from_http_request
38
+ @results_from_http_request ||= [results_from_headers, results_from_body].flatten.compact
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -2,9 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
4
  class MicropubParser < BaseParser
5
- def self.identifier
6
- :micropub
7
- end
5
+ @identifier = :micropub
8
6
 
9
7
  Parsers.register(self)
10
8
  end
@@ -2,9 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
4
  class MicrosubParser < BaseParser
5
- def self.identifier
6
- :microsub
7
- end
5
+ @identifier = :microsub
8
6
 
9
7
  Parsers.register(self)
10
8
  end
@@ -2,9 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
4
  class RedirectUriParser < BaseParser
5
- def self.identifier
6
- :redirect_uri
7
- end
5
+ @identifier = :redirect_uri
8
6
 
9
7
  Parsers.register(self)
10
8
 
@@ -2,9 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
4
  class TokenEndpointParser < BaseParser
5
- def self.identifier
6
- :token_endpoint
7
- end
5
+ @identifier = :token_endpoint
8
6
 
9
7
  Parsers.register(self)
10
8
  end
@@ -2,16 +2,14 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Parsers
4
4
  class WebmentionParser < BaseParser
5
- def self.identifier
6
- :webmention
7
- end
5
+ @identifier = :webmention
8
6
 
9
7
  Parsers.register(self)
10
8
 
11
9
  private
12
10
 
13
11
  def results_for_node(node)
14
- Services::ResponseBodyParserService.new.parse(response, self.class.identifier, node)
12
+ Services::ResponseBodyParserService.parse(response, self.class.identifier, node)
15
13
  end
16
14
 
17
15
  # https://www.w3.org/TR/webmention/#sender-discovers-receiver-webmention-endpoint
@@ -2,37 +2,20 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Services
4
4
  class HttpRequestService
5
- # Defaults derived from Webmention specification examples
6
- # https://www.w3.org/TR/webmention/#limits-on-get-requests
7
- HTTP_CLIENT_OPTS = {
8
- follow: {
9
- max_hops: 20
10
- },
11
- headers: {
12
- accept: '*/*',
13
- user_agent: 'IndieWeb Endpoint Discovery (https://rubygems.org/gems/indieweb-endpoints)'
14
- },
15
- timeout_options: {
16
- connect_timeout: 5,
17
- read_timeout: 5
18
- }
5
+ HTTP_HEADERS_OPTS = {
6
+ accept: '*/*',
7
+ user_agent: 'IndieWeb Endpoint Discovery (https://rubygems.org/gems/indieweb-endpoints)'
19
8
  }.freeze
20
9
 
21
- def initialize
22
- @client = HTTP::Client.new(HTTP_CLIENT_OPTS)
23
- end
24
-
25
- def get(uri)
26
- client.request(:get, uri)
10
+ # HTTP options derived from Webmention specification examples
11
+ # https://www.w3.org/TR/webmention/#limits-on-get-requests
12
+ def self.get(uri)
13
+ HTTP.follow(max_hops: 20).headers(HTTP_HEADERS_OPTS).timeout(connect: 5, read: 5).get(uri)
27
14
  rescue HTTP::ConnectionError,
28
15
  HTTP::TimeoutError,
29
16
  HTTP::Redirector::TooManyRedirectsError => exception
30
17
  raise IndieWeb::Endpoints.const_get(exception.class.name.split('::').last), exception
31
18
  end
32
-
33
- private
34
-
35
- attr_accessor :client
36
19
  end
37
20
  end
38
21
  end
@@ -2,7 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Services
4
4
  class ResponseBodyParserService
5
- def parse(response, identifier, node = 'link')
5
+ def self.parse(response, identifier, node = 'link')
6
6
  return unless response.mime_type == 'text/html'
7
7
 
8
8
  # Reject endpoints that contain a fragment identifier
@@ -2,7 +2,7 @@ module IndieWeb
2
2
  module Endpoints
3
3
  module Services
4
4
  class ResponseHeadersParserService
5
- def parse(response, identifier)
5
+ def self.parse(response, identifier)
6
6
  headers = LinkHeaderParser.parse(response.headers.get('link'), base: response.uri.to_s).by_relation_type[identifier]
7
7
 
8
8
  return unless headers
@@ -1,5 +1,5 @@
1
1
  module IndieWeb
2
2
  module Endpoints
3
- VERSION = '2.0.0'.freeze
3
+ VERSION = '3.0.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,155 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indieweb-endpoints
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Garber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-25 00:00:00.000000000 Z
11
+ date: 2020-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rake
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '13.0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '13.0'
27
- - !ruby/object:Gem::Dependency
28
- name: reek
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '5.6'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '5.6'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.9'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.9'
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.79.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 0.79.0
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop-performance
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.5'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.5'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.37'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.37'
97
- - !ruby/object:Gem::Dependency
98
- name: simplecov
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 0.17.1
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 0.17.1
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov-console
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 0.6.0
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 0.6.0
125
- - !ruby/object:Gem::Dependency
126
- name: webmock
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.8'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.8'
139
13
  - !ruby/object:Gem::Dependency
140
14
  name: absolutely
141
15
  requirement: !ruby/object:Gem::Requirement
142
16
  requirements:
143
17
  - - "~>"
144
18
  - !ruby/object:Gem::Version
145
- version: '3.1'
19
+ version: '4.0'
146
20
  type: :runtime
147
21
  prerelease: false
148
22
  version_requirements: !ruby/object:Gem::Requirement
149
23
  requirements:
150
24
  - - "~>"
151
25
  - !ruby/object:Gem::Version
152
- version: '3.1'
26
+ version: '4.0'
153
27
  - !ruby/object:Gem::Dependency
154
28
  name: addressable
155
29
  requirement: !ruby/object:Gem::Requirement
@@ -170,28 +44,28 @@ dependencies:
170
44
  requirements:
171
45
  - - "~>"
172
46
  - !ruby/object:Gem::Version
173
- version: '4.3'
47
+ version: '4.4'
174
48
  type: :runtime
175
49
  prerelease: false
176
50
  version_requirements: !ruby/object:Gem::Requirement
177
51
  requirements:
178
52
  - - "~>"
179
53
  - !ruby/object:Gem::Version
180
- version: '4.3'
54
+ version: '4.4'
181
55
  - !ruby/object:Gem::Dependency
182
56
  name: link-header-parser
183
57
  requirement: !ruby/object:Gem::Requirement
184
58
  requirements:
185
59
  - - "~>"
186
60
  - !ruby/object:Gem::Version
187
- version: 0.3.0
61
+ version: 1.0.0
188
62
  type: :runtime
189
63
  prerelease: false
190
64
  version_requirements: !ruby/object:Gem::Requirement
191
65
  requirements:
192
66
  - - "~>"
193
67
  - !ruby/object:Gem::Version
194
- version: 0.3.0
68
+ version: 1.0.0
195
69
  - !ruby/object:Gem::Dependency
196
70
  name: nokogiri
197
71
  requirement: !ruby/object:Gem::Requirement
@@ -233,10 +107,10 @@ files:
233
107
  - indieweb-endpoints.gemspec
234
108
  - lib/indieweb/endpoints.rb
235
109
  - lib/indieweb/endpoints/client.rb
236
- - lib/indieweb/endpoints/concerns/registerable.rb
237
110
  - lib/indieweb/endpoints/exceptions.rb
238
111
  - lib/indieweb/endpoints/parsers.rb
239
112
  - lib/indieweb/endpoints/parsers/authorization_endpoint_parser.rb
113
+ - lib/indieweb/endpoints/parsers/base_parser.rb
240
114
  - lib/indieweb/endpoints/parsers/micropub_parser.rb
241
115
  - lib/indieweb/endpoints/parsers/microsub_parser.rb
242
116
  - lib/indieweb/endpoints/parsers/redirect_uri_parser.rb
@@ -251,7 +125,7 @@ licenses:
251
125
  - MIT
252
126
  metadata:
253
127
  bug_tracker_uri: https://github.com/indieweb/indieweb-endpoints-ruby/issues
254
- changelog_uri: https://github.com/indieweb/indieweb-endpoints-ruby/blob/v2.0.0/CHANGELOG.md
128
+ changelog_uri: https://github.com/indieweb/indieweb-endpoints-ruby/blob/v3.0.0/CHANGELOG.md
255
129
  post_install_message:
256
130
  rdoc_options: []
257
131
  require_paths:
@@ -270,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
144
  - !ruby/object:Gem::Version
271
145
  version: '0'
272
146
  requirements: []
273
- rubygems_version: 3.0.6
147
+ rubygems_version: 3.1.3
274
148
  signing_key:
275
149
  specification_version: 4
276
150
  summary: Discover a URL’s IndieAuth, Micropub, Microsub, and Webmention endpoints.
@@ -1,15 +0,0 @@
1
- module IndieWeb
2
- module Endpoints
3
- module Concerns
4
- module Registerable
5
- def register(klass)
6
- registered[klass.identifier] = klass
7
- end
8
-
9
- def registered
10
- @registered ||= {}
11
- end
12
- end
13
- end
14
- end
15
- end