webmention 7.0.0 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 387888cbf5a1a801aad4b0d227ca65a1409368bbfeb531f49fd81419af4bfa90
4
- data.tar.gz: 2fc1836b5b4384de39d3a69d16d9ad2cc36b4d7aa77a93b14b644dbab59ae751
3
+ metadata.gz: e4443988ec11a8c807bcaefa41a2838d7b9bfe9943ae9f53e28a155a9c6d7c68
4
+ data.tar.gz: 77147bbffe3370285afcc0e49f016912efd65d7e4904f67bd0ac802f72077385
5
5
  SHA512:
6
- metadata.gz: 3ddb3194c1745c61a60820c06146ef0e0eb9fa87ab8c7d1a8eaba4d70d360f553915629534d93ab8785b1e33fab5ed2b526219c3dba1f8f953b72c9fb4ececc2
7
- data.tar.gz: b32cd9acc63647cc1b8548a4d23a029858f8897f8e34747be18451e040f938943090596903006716d564f1b6e74ac791cf788e36a4696244a70190a83634ddd4
6
+ metadata.gz: 26283df86f92e3e3f29d601878d3f604a92ae7e31af52d8d153d6c8b1ee13d94e064df906bed83e9cf2d6e27d7d7c89dc09f105862c30e5c999e5680a9eb6095
7
+ data.tar.gz: 450e7178e1d6354fae32b35e958692c7d6d25243b10dd52104f5c63a1cec09854d5e7d1be3570f707fef5298c163af1712dac1d5a458a4fa7d0e22165a673a23
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ > [!NOTE]
4
+ > From v8.0.0, changes are documented using [GitHub Releases](https://github.com/indieweb/webmention-client-ruby/releases). For a given release, metadata on RubyGems.org will link to that version's Release page.
5
+
3
6
  ## 7.0.0 / 2022-11-09
4
7
 
5
8
  - Refactor HTML and JSON parser classes (ec58206 and 6818c05)
data/CONTRIBUTING.md CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  There are a couple ways you can help improve webmention-client-ruby:
4
4
 
5
- 1. Fix an existing [issue][issues] and submit a [pull request][pulls].
6
- 1. Review open [pull requests][pulls].
7
- 1. Report a new [issue][issues]. _Only do this after you've made sure the behavior or problem you're observing isn't already documented in an open issue._
5
+ 1. Fix an existing [Issue][issues] and submit a [Pull Request][pulls].
6
+ 1. Review open [Pull Requests][pulls].
7
+ 1. Report a new [Issue][issues]. _Only do this after you've made sure the behavior or problem you're observing isn't already documented in an open issue._
8
8
 
9
9
  ## Getting Started
10
10
 
11
- webmention-client-ruby is developed using Ruby 2.7.6 and is additionally tested against Ruby 3.0 and 3.1 using [GitHub Actions](https://github.com/indieweb/webmention-client-ruby/actions).
11
+ webmention-client-ruby is developed using Ruby 3.3.0 and is tested against additional Ruby versions using [GitHub Actions](https://github.com/indieweb/webmention-client-ruby/actions).
12
12
 
13
- Before making changes to webmention-client-ruby, you'll want to install Ruby 2.7.6. 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.7.6 using your method of choice, install the project's gems by running:
13
+ Before making changes to webmention-client-ruby, you'll want to install Ruby 3.3.0. Using 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) is recommended. Once you've installed Ruby 3.3.0 using your method of choice, install the project's gems by running:
14
14
 
15
15
  ```sh
16
16
  bundle install
@@ -25,11 +25,11 @@ bundle install
25
25
  1. If your changes would benefit from testing, add the necessary tests and verify everything passes by running `bundle exec rspec`.
26
26
  1. Commit your changes: `git commit -am 'Add some new feature or fix some issue'`. _(See [this excellent article](https://chris.beams.io/posts/git-commit/) for tips on writing useful Git commit messages.)_
27
27
  1. Push the branch to your fork: `git push -u origin my-new-feature`.
28
- 1. Create a new [pull request][pulls] and we'll review your changes.
28
+ 1. Create a new [Pull Request][pulls] and we'll review your changes.
29
29
 
30
30
  ## Code Style
31
31
 
32
- Code formatting conventions are defined in the `.editorconfig` file which uses the [EditorConfig](http://editorconfig.org) syntax. There are [plugins for a variety of editors](http://editorconfig.org/#download) that utilize the settings in the `.editorconfig` file. We recommended you install the EditorConfig plugin for your editor of choice.
32
+ Code formatting conventions are defined in the `.editorconfig` file which uses the [EditorConfig](http://editorconfig.org) syntax. There are [plugins for a variety of editors](http://editorconfig.org/#download) that utilize the settings in the `.editorconfig` file. We recommended installing the EditorConfig plugin for your editor of choice.
33
33
 
34
34
  Your bug fix or feature addition won't be rejected if it runs afoul of any (or all) of these guidelines, but following the guidelines will definitely make everyone's lives a little easier.
35
35
 
data/README.md CHANGED
@@ -4,9 +4,7 @@
4
4
 
5
5
  [![Gem](https://img.shields.io/gem/v/webmention.svg?logo=rubygems&style=for-the-badge)](https://rubygems.org/gems/webmention)
6
6
  [![Downloads](https://img.shields.io/gem/dt/webmention.svg?logo=rubygems&style=for-the-badge)](https://rubygems.org/gems/webmention)
7
- [![Build](https://img.shields.io/github/workflow/status/indieweb/webmention-client-ruby/CI?logo=github&style=for-the-badge)](https://github.com/indieweb/webmention-client-ruby/actions/workflows/ci.yml)
8
- [![Maintainability](https://img.shields.io/codeclimate/maintainability/indieweb/webmention-client-ruby.svg?logo=code-climate&style=for-the-badge)](https://codeclimate.com/github/indieweb/webmention-client-ruby)
9
- [![Coverage](https://img.shields.io/codeclimate/c/indieweb/webmention-client-ruby.svg?logo=code-climate&style=for-the-badge)](https://codeclimate.com/github/indieweb/webmention-client-ruby/code)
7
+ [![Build](https://img.shields.io/github/actions/workflow/status/indieweb/webmention-client-ruby/ci.yml?branch=main&logo=github&style=for-the-badge)](https://github.com/indieweb/webmention-client-ruby/actions/workflows/ci.yml)
10
8
 
11
9
  ## Key Features
12
10
 
@@ -17,24 +15,18 @@
17
15
 
18
16
  ## Getting Started
19
17
 
20
- Before installing and using webmention-client-ruby, you'll want to have [Ruby](https://www.ruby-lang.org) 2.7 (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).
18
+ Before installing and using webmention-client-ruby, you'll want to have [Ruby](https://www.ruby-lang.org) 3.0 (or newer) installed. Using 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) is recommended.
21
19
 
22
- webmention-client-ruby is developed using Ruby 2.7.6 and is additionally tested against Ruby 3.0 and 3.1 using [GitHub Actions](https://github.com/indieweb/webmention-client-ruby/actions).
20
+ webmention-client-ruby is developed using Ruby 3.0.0 and is tested against additional Ruby versions using [GitHub Actions](https://github.com/indieweb/webmention-client-ruby/actions).
23
21
 
24
22
  ## Installation
25
23
 
26
- If you're using [Bundler](https://bundler.io) to manage gem dependencies, add webmention-client-ruby to your project's `Gemfile`:
24
+ Add webmention-client-ruby to your project's `Gemfile` and run `bundle install`:
27
25
 
28
26
  ```ruby
29
- gem 'webmention'
30
- ```
31
-
32
- …and run `bundle install` in your shell.
27
+ source "https://rubygems.org"
33
28
 
34
- To install the gem manually, run the following in your shell:
35
-
36
- ```sh
37
- gem install webmention
29
+ gem "webmention-client"
38
30
  ```
39
31
 
40
32
  ## Usage
@@ -55,7 +47,9 @@ webmention-client-ruby was completely rewritten for version 6 to better support
55
47
 
56
48
  ## Contributing
57
49
 
58
- Interested in helping improve webmention-client-ruby? Awesome! Your help is greatly appreciated. See [CONTRIBUTING.md](https://github.com/indieweb/webmention-client-ruby/blob/main/CONTRIBUTING.md) for details.
50
+ See [CONTRIBUTING.md](https://github.com/indieweb/webmention-client-ruby/blob/main/CONTRIBUTING.md) for more on how to contribute to webmention-client-ruby. Your help is greatly appreciated!
51
+
52
+ By contributing to and participating in the development of webmention-client-ruby, you acknowledge that you have read and agree to the [IndieWeb Code of Conduct](https://indieweb.org/code-of-conduct).
59
53
 
60
54
  ## Acknowledgments
61
55
 
data/USAGE.md CHANGED
@@ -7,10 +7,10 @@ Before using webmention-client-ruby, please read the [Getting Started](https://g
7
7
  With webmention-client-ruby installed, you may send a webmention from a source URL to a target URL:
8
8
 
9
9
  ```ruby
10
- require 'webmention'
10
+ require "webmention"
11
11
 
12
- source = 'https://jgarber.example/post/100' # A post on your website
13
- target = 'https://aaronpk.example/post/100' # A post on someone else's website
12
+ source = "https://jgarber.example/post/100" # A post on your website
13
+ target = "https://aaronpk.example/post/100" # A post on someone else's website
14
14
 
15
15
  response = Webmention.send_webmention(source, target)
16
16
  ```
@@ -61,8 +61,8 @@ response.uri #=> HTTP::URI
61
61
  To send webmentions to multiple target URLs mentioned by a source URL:
62
62
 
63
63
  ```ruby
64
- source = 'https://jgarber.example/post/100'
65
- targets = ['https://aaronpk.example/notes/1', 'https://adactio.example/notes/1']
64
+ source = "https://jgarber.example/post/100"
65
+ targets = ["https://aaronpk.example/notes/1", "https://adactio.example/notes/1"]
66
66
 
67
67
  responses = Webmention.send_webmentions(source, targets)
68
68
  ```
@@ -75,10 +75,10 @@ webmention-client-ruby supports submitting a [vouch](https://indieweb.org/Vouch)
75
75
 
76
76
  ```ruby
77
77
  # Send a webmention with a vouch URL to a target URL
78
- Webmention.send_webmention(source, target, vouch: 'https://tantek.example/notes/1')
78
+ Webmention.send_webmention(source, target, vouch: "https://tantek.example/notes/1")
79
79
 
80
80
  # Send webmentions with a vouch URL to multiple target URLs
81
- Webmention.send_webmentions(source, targets, vouch: 'https://tantek.example/notes/1')
81
+ Webmention.send_webmentions(source, targets, vouch: "https://tantek.example/notes/1")
82
82
  ```
83
83
 
84
84
  ## Discovering mentioned URLs
@@ -86,7 +86,7 @@ Webmention.send_webmentions(source, targets, vouch: 'https://tantek.example/note
86
86
  To retrieve unique URLs mentioned by a URL:
87
87
 
88
88
  ```ruby
89
- urls = Webmention.mentioned_urls('https://jgarber.example/post/100')
89
+ urls = Webmention.mentioned_urls("https://jgarber.example/post/100")
90
90
  ```
91
91
 
92
92
  `Webmention.mentioned_urls` will crawl the provided URL, parse the response body, and return a sorted list of unique URLs. Response bodies are parsed using MIME type-specific rules as noted in the [Verifying a webmention](#verifying-a-webmention) section below.
@@ -129,7 +129,7 @@ verification = Webmention.verify_webmention(source, target)
129
129
 
130
130
  # Verify that a source URL links to a target URL and that the vouch URL mentions
131
131
  # the source URL's domain
132
- verification = Webmention.verify_webmention(source, target, vouch: 'https://tantek.example/notes/1')
132
+ verification = Webmention.verify_webmention(source, target, vouch: "https://tantek.example/notes/1")
133
133
  ```
134
134
 
135
135
  `Webmention.verify_webmention` returns an instance of `Webmention::Verification` which includes the following methods (each returns either `true` or `false`):
@@ -43,7 +43,7 @@ module Webmention
43
43
  # :nocov:
44
44
  # @return [String]
45
45
  def inspect
46
- "#<#{self.class}:#{format('%#0x', object_id)} " \
46
+ "#<#{self.class}:#{format("%#0x", object_id)} " \
47
47
  "source_url: #{source_url} " \
48
48
  "vouch_url: #{vouch_url}>"
49
49
  end
@@ -63,13 +63,16 @@ module Webmention
63
63
  def mentioned_urls
64
64
  response = source_url.response
65
65
 
66
- self.class
67
- .registered_parsers[response.mime_type]
68
- .new(response.body, response.uri)
69
- .results
70
- .uniq
71
- .reject { |url| url.match(/^#{response.uri}(?:#.*)?$/) }
72
- .sort
66
+ urls = Set.new(
67
+ self.class
68
+ .registered_parsers[response.mime_type]
69
+ .new(response.body, response.uri)
70
+ .results
71
+ )
72
+
73
+ urls.reject! { |url| url.match(/^#{response.uri}(?:#.*)?$/) }
74
+
75
+ urls.to_a.sort
73
76
  end
74
77
 
75
78
  # Send a webmention from this client's source URL to a target URL.
@@ -136,8 +139,10 @@ module Webmention
136
139
  vouch: vouch_url
137
140
  }
138
141
 
139
- opts.transform_values { |value| value.to_s.strip }
140
- .delete_if { |_, value| value.empty? }
142
+ opts.transform_values! { |value| value.to_s.strip }
143
+ opts.reject! { |_, value| value.empty? }
144
+
145
+ opts
141
146
  end
142
147
  end
143
148
  end
@@ -27,7 +27,7 @@ module Webmention
27
27
  # :nocov:
28
28
  # @return [String]
29
29
  def inspect
30
- "#<#{self.class}:#{format('%#0x', object_id)} " \
30
+ "#<#{self.class}:#{format("%#0x", object_id)} " \
31
31
  "message: #{message}>"
32
32
  end
33
33
  # :nocov:
@@ -4,24 +4,24 @@ module Webmention
4
4
  module Parsers
5
5
  # @api private
6
6
  class HtmlParser < Parser
7
- @mime_types = ['text/html']
7
+ @mime_types = ["text/html"]
8
8
 
9
9
  Client.register_parser(self)
10
10
 
11
11
  HTML_ATTRIBUTES_MAP = {
12
- 'cite' => %w[blockquote del ins q],
13
- 'data' => %w[object],
14
- 'href' => %w[a area],
15
- 'poster' => %w[video],
16
- 'src' => %w[audio embed img source track video],
17
- 'srcset' => %w[img source]
12
+ "cite" => %w[blockquote del ins q],
13
+ "data" => %w[object],
14
+ "href" => %w[a area],
15
+ "poster" => %w[video],
16
+ "src" => %w[audio embed img source track video],
17
+ "srcset" => %w[img source]
18
18
  }.freeze
19
19
 
20
20
  CSS_SELECTORS_ARRAY = HTML_ATTRIBUTES_MAP.flat_map do |attribute, names|
21
21
  names.map { |name| "#{name}[#{attribute}]" }
22
22
  end.freeze
23
23
 
24
- ROOT_NODE_SELECTORS_ARRAY = ['.h-entry .e-content', '.h-entry', 'body'].freeze
24
+ ROOT_NODE_SELECTORS_ARRAY = [".h-entry .e-content", ".h-entry", "body"].freeze
25
25
 
26
26
  private_constant :HTML_ATTRIBUTES_MAP
27
27
  private_constant :CSS_SELECTORS_ARRAY
@@ -30,8 +30,9 @@ module Webmention
30
30
  # @return [Array<String>] An array of absolute URLs.
31
31
  def results
32
32
  @results ||=
33
- extract_urls_from(*url_attributes).map { |url| response_uri.join(url).to_s }
34
- .grep(Parser::URI_REGEXP)
33
+ extract_urls_from(*url_attributes)
34
+ .map { |url| response_uri.join(url).to_s }
35
+ .grep(Parser::URI_REGEXP)
35
36
  end
36
37
 
37
38
  private
@@ -46,8 +47,8 @@ module Webmention
46
47
  # @return [Array<String>]
47
48
  def extract_urls_from(*attributes)
48
49
  attributes.flat_map do |attribute|
49
- if attribute.name == 'srcset'
50
- attribute.value.split(',').map { |value| value.strip.match(/^\S+/).to_s }
50
+ if attribute.name == "srcset"
51
+ attribute.value.split(",").map { |value| value.strip.match(/^\S+/).to_s }
51
52
  else
52
53
  attribute.value
53
54
  end
@@ -4,7 +4,7 @@ module Webmention
4
4
  module Parsers
5
5
  # @api private
6
6
  class JsonParser < Parser
7
- @mime_types = ['application/json']
7
+ @mime_types = ["application/json"]
8
8
 
9
9
  Client.register_parser(self)
10
10
 
@@ -4,7 +4,7 @@ module Webmention
4
4
  module Parsers
5
5
  # @api private
6
6
  class PlaintextParser < Parser
7
- @mime_types = ['text/plain']
7
+ @mime_types = ["text/plain"]
8
8
 
9
9
  Client.register_parser(self)
10
10
 
@@ -9,8 +9,8 @@ module Webmention
9
9
  max_hops: 20
10
10
  },
11
11
  headers: {
12
- accept: '*/*',
13
- user_agent: 'Webmention Client (https://rubygems.org/gems/webmention)'
12
+ accept: "*/*",
13
+ user_agent: "Webmention Client (https://rubygems.org/gems/webmention)"
14
14
  },
15
15
  timeout_options: {
16
16
  connect_timeout: 5,
@@ -82,7 +82,7 @@ module Webmention
82
82
  # :nocov:
83
83
  # @return [String]
84
84
  def inspect
85
- "#<#{self.class}:#{format('%#0x', object_id)} " \
85
+ "#<#{self.class}:#{format("%#0x", object_id)} " \
86
86
  "method: #{method.upcase}, " \
87
87
  "url: #{uri}>"
88
88
  end
@@ -93,8 +93,7 @@ module Webmention
93
93
  # @return [Webmention::Response, Webmention::ErrorResponse]
94
94
  def perform
95
95
  Response.new(client.request(method, uri, options), self)
96
- rescue HTTP::Error,
97
- OpenSSL::SSL::SSLError => e
96
+ rescue HTTP::Error, OpenSSL::SSL::SSLError => e
98
97
  ErrorResponse.new(e.message, self)
99
98
  end
100
99
 
@@ -49,7 +49,7 @@ module Webmention
49
49
  # :nocov:
50
50
  # @return [String]
51
51
  def inspect
52
- "#<#{self.class}:#{format('%#0x', object_id)} " \
52
+ "#<#{self.class}:#{format("%#0x", object_id)} " \
53
53
  "code: #{code.inspect}, " \
54
54
  "reason: #{reason}, " \
55
55
  "url: #{request.uri}>"
@@ -23,7 +23,7 @@ module Webmention
23
23
  # :nocov:
24
24
  # @return [String]
25
25
  def inspect
26
- "#<#{self.class}:#{format('%#0x', object_id)} " \
26
+ "#<#{self.class}:#{format("%#0x", object_id)} " \
27
27
  "uri: #{uri}>"
28
28
  end
29
29
  # :nocov:
@@ -14,7 +14,7 @@ module Webmention
14
14
  # :nocov:
15
15
  # @return [String]
16
16
  def inspect
17
- "#<#{self.class}:#{format('%#0x', object_id)} " \
17
+ "#<#{self.class}:#{format("%#0x", object_id)} " \
18
18
  "source_url: #{source_url} " \
19
19
  "target_url: #{target_url} " \
20
20
  "vouch_url: #{vouch_url}>"
@@ -61,7 +61,7 @@ module Webmention
61
61
  #
62
62
  # @return [Array<String>]
63
63
  def mentioned_domains(response)
64
- mentioned_urls(response).map { |url| HTTP::URI.parse(url).host }.uniq
64
+ Set.new(mentioned_urls(response).map { |url| HTTP::URI.parse(url).host }).to_a
65
65
  end
66
66
 
67
67
  # @param response [Webmention::Response]
@@ -70,10 +70,11 @@ module Webmention
70
70
  #
71
71
  # @return [Array<String>]
72
72
  def mentioned_urls(response)
73
- Client.registered_parsers[response.mime_type]
74
- .new(response.body, response.uri)
75
- .results
76
- .uniq
73
+ Set.new(
74
+ Client.registered_parsers[response.mime_type]
75
+ .new(response.body, response.uri)
76
+ .results
77
+ ).to_a
77
78
  end
78
79
  end
79
80
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Webmention
4
- VERSION = '7.0.0'
4
+ VERSION = "8.0.0"
5
5
  end
data/lib/webmention.rb CHANGED
@@ -1,24 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
- require 'http'
6
- require 'indieweb/endpoints'
7
- require 'nokogiri'
5
+ require "http"
6
+ require "indieweb/endpoints"
7
+ require "nokogiri"
8
8
 
9
- require_relative 'webmention/version'
9
+ require_relative "webmention/version"
10
10
 
11
- require_relative 'webmention/client'
12
- require_relative 'webmention/url'
13
- require_relative 'webmention/request'
14
- require_relative 'webmention/response'
15
- require_relative 'webmention/error_response'
16
- require_relative 'webmention/verification'
11
+ require_relative "webmention/client"
12
+ require_relative "webmention/url"
13
+ require_relative "webmention/request"
14
+ require_relative "webmention/response"
15
+ require_relative "webmention/error_response"
16
+ require_relative "webmention/verification"
17
17
 
18
- require_relative 'webmention/parser'
19
- require_relative 'webmention/parsers/html_parser'
20
- require_relative 'webmention/parsers/json_parser'
21
- require_relative 'webmention/parsers/plaintext_parser'
18
+ require_relative "webmention/parser"
19
+ require_relative "webmention/parsers/html_parser"
20
+ require_relative "webmention/parsers/json_parser"
21
+ require_relative "webmention/parsers/plaintext_parser"
22
22
 
23
23
  module Webmention
24
24
  # Retrieve unique URLs mentioned by the provided URL.
data/webmention.gemspec CHANGED
@@ -1,33 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'lib/webmention/version'
3
+ require_relative "lib/webmention/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.required_ruby_version = '>= 2.7', '< 4'
6
+ spec.required_ruby_version = ">= 3.0"
7
7
 
8
- spec.name = 'webmention'
9
- spec.version = Webmention::VERSION
10
- spec.authors = ['Jason Garber']
11
- spec.email = ['jason@sixtwothree.org']
8
+ spec.name = "webmention"
9
+ spec.version = Webmention::VERSION
10
+ spec.authors = ["Jason Garber"]
11
+ spec.email = ["jason@sixtwothree.org"]
12
12
 
13
- spec.summary = 'Webmention notification client'
14
- spec.description = 'A Ruby gem for sending and verifying Webmention notifications.'
15
- spec.homepage = 'https://github.com/indieweb/webmention-client-ruby'
16
- spec.license = 'Apache-2.0'
13
+ spec.summary = "Webmention notification client"
14
+ spec.description = "A Ruby gem for sending and verifying Webmention notifications."
15
+ spec.homepage = "https://github.com/indieweb/webmention-client-ruby"
16
+ spec.license = "Apache-2.0"
17
17
 
18
- spec.files = Dir['lib/**/*'].reject { |f| File.directory?(f) }
19
- spec.files += %w[LICENSE CHANGELOG.md CONTRIBUTING.md README.md USAGE.md]
20
- spec.files += %w[webmention.gemspec]
18
+ spec.files = Dir["lib/**/*"].reject { |f| File.directory?(f) }
19
+ spec.files += %w[LICENSE CHANGELOG.md CONTRIBUTING.md README.md USAGE.md]
20
+ spec.files += %w[webmention.gemspec]
21
21
 
22
- spec.require_paths = ['lib']
22
+ spec.require_paths = ["lib"]
23
23
 
24
24
  spec.metadata = {
25
- 'bug_tracker_uri' => "#{spec.homepage}/issues",
26
- 'changelog_uri' => "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md",
27
- 'rubygems_mfa_required' => 'true'
25
+ "bug_tracker_uri" => "#{spec.homepage}/issues",
26
+ "changelog_uri" => "#{spec.homepage}/releases/tag/v#{spec.version}",
27
+ "rubygems_mfa_required" => "true",
28
+ "source_code_uri" => "#{spec.homepage}/tree/v#{spec.version}"
28
29
  }
29
30
 
30
- spec.add_runtime_dependency 'http', '~> 5.0'
31
- spec.add_runtime_dependency 'indieweb-endpoints', '~> 8.0'
32
- spec.add_runtime_dependency 'nokogiri', '>= 1.13'
31
+ spec.add_runtime_dependency "http", "~> 5.2"
32
+ spec.add_runtime_dependency "indieweb-endpoints", "~> 9.0"
33
+ spec.add_runtime_dependency "nokogiri", ">= 1.16"
33
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmention
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 8.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: 2022-11-10 00:00:00.000000000 Z
11
+ date: 2024-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '5.2'
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: '5.0'
26
+ version: '5.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: indieweb-endpoints
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '8.0'
33
+ version: '9.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: '8.0'
40
+ version: '9.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.13'
47
+ version: '1.16'
48
48
  type: :runtime
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: '1.13'
54
+ version: '1.16'
55
55
  description: A Ruby gem for sending and verifying Webmention notifications.
56
56
  email:
57
57
  - jason@sixtwothree.org
@@ -82,8 +82,9 @@ licenses:
82
82
  - Apache-2.0
83
83
  metadata:
84
84
  bug_tracker_uri: https://github.com/indieweb/webmention-client-ruby/issues
85
- changelog_uri: https://github.com/indieweb/webmention-client-ruby/blob/v7.0.0/CHANGELOG.md
85
+ changelog_uri: https://github.com/indieweb/webmention-client-ruby/releases/tag/v8.0.0
86
86
  rubygems_mfa_required: 'true'
87
+ source_code_uri: https://github.com/indieweb/webmention-client-ruby/tree/v8.0.0
87
88
  post_install_message:
88
89
  rdoc_options: []
89
90
  require_paths:
@@ -92,17 +93,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
93
  requirements:
93
94
  - - ">="
94
95
  - !ruby/object:Gem::Version
95
- version: '2.7'
96
- - - "<"
97
- - !ruby/object:Gem::Version
98
- version: '4'
96
+ version: '3.0'
99
97
  required_rubygems_version: !ruby/object:Gem::Requirement
100
98
  requirements:
101
99
  - - ">="
102
100
  - !ruby/object:Gem::Version
103
101
  version: '0'
104
102
  requirements: []
105
- rubygems_version: 3.3.16
103
+ rubygems_version: 3.5.3
106
104
  signing_key:
107
105
  specification_version: 4
108
106
  summary: Webmention notification client