webmention 0.1.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmention
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Parecki
@@ -9,148 +9,240 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-06-27 00:00:00.000000000 Z
12
+ date: 2019-07-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: json
15
+ name: minitest
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
21
- type: :runtime
20
+ version: '5.11'
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: '0'
27
+ version: '5.11'
28
28
  - !ruby/object:Gem::Dependency
29
- name: nokogiri
29
+ name: minitest-reporters
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :runtime
34
+ version: '1.3'
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: '0'
41
+ version: '1.3'
42
42
  - !ruby/object:Gem::Dependency
43
- name: httparty
43
+ name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 0.15.5
49
- type: :runtime
48
+ version: '12.3'
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: 0.15.5
55
+ version: '12.3'
56
56
  - !ruby/object:Gem::Dependency
57
- name: link_header
57
+ name: reek
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: 0.0.8
63
- type: :runtime
62
+ version: '5.4'
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.0.8
69
+ version: '5.4'
70
70
  - !ruby/object:Gem::Dependency
71
- name: bundler
71
+ name: rubocop
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: 0.72.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: 0.72.0
84
84
  - !ruby/object:Gem::Dependency
85
- name: rake
85
+ name: rubocop-performance
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: '1.4'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: '1.4'
98
98
  - !ruby/object:Gem::Dependency
99
- name: minitest
99
+ name: simplecov
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
102
+ - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0'
104
+ version: 0.17.0
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: 0.17.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: simplecov-console
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 0.5.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.5.0
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: webmock
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
- - - ">="
130
+ - - "~>"
117
131
  - !ruby/object:Gem::Version
118
- version: '0'
132
+ version: '3.6'
119
133
  type: :development
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
136
  requirements:
123
- - - ">="
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '3.6'
140
+ - !ruby/object:Gem::Dependency
141
+ name: absolutely
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '3.0'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
124
152
  - !ruby/object:Gem::Version
125
- version: '0'
126
- description:
127
- email: aaron@parecki.com
128
- executables:
129
- - webmention
153
+ version: '3.0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: addressable
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '2.6'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '2.6'
168
+ - !ruby/object:Gem::Dependency
169
+ name: http
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: 5.0.0.pre
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: 5.0.0.pre
182
+ - !ruby/object:Gem::Dependency
183
+ name: indieweb-endpoints
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: 0.6.0
189
+ type: :runtime
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: 0.6.0
196
+ - !ruby/object:Gem::Dependency
197
+ name: nokogiri
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '1.10'
203
+ type: :runtime
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1.10'
210
+ description: A Ruby gem for sending webmention notifications.
211
+ email:
212
+ - aaron@parecki.com
213
+ executables: []
130
214
  extensions: []
131
215
  extra_rdoc_files: []
132
216
  files:
217
+ - ".editorconfig"
133
218
  - ".gitignore"
219
+ - ".reek.yml"
220
+ - ".rubocop"
221
+ - ".rubocop.yml"
222
+ - ".ruby-version"
223
+ - ".simplecov"
134
224
  - ".travis.yml"
225
+ - CHANGELOG.md
226
+ - CONTRIBUTING.md
135
227
  - Gemfile
228
+ - LICENSE
136
229
  - README.md
137
230
  - Rakefile
138
- - bin/webmention
139
- - example.rb
140
231
  - lib/webmention.rb
141
232
  - lib/webmention/client.rb
233
+ - lib/webmention/exceptions.rb
234
+ - lib/webmention/http_request.rb
235
+ - lib/webmention/parsers.rb
236
+ - lib/webmention/parsers/html_parser.rb
237
+ - lib/webmention/registerable.rb
142
238
  - lib/webmention/version.rb
143
- - test/data/sample_html.rb
144
- - test/lib/webmention/crawl_test.rb
145
- - test/lib/webmention/discovery_test.rb
146
- - test/lib/webmention/mention_test.rb
147
- - test/lib/webmention/url_test.rb
148
- - test/lib/webmention/version_test.rb
149
- - test/test_helper.rb
150
239
  - webmention.gemspec
151
- homepage: https://github.com/indieweb/mention-client-ruby
152
- licenses: []
153
- metadata: {}
240
+ homepage: https://github.com/indieweb/webmention-client-ruby
241
+ licenses:
242
+ - Apache-2.0
243
+ metadata:
244
+ bug_tracker_uri: https://github.com/indieweb/webmention-client-ruby/issues
245
+ changelog_uri: https://github.com/indieweb/webmention-client-ruby/blob/v1.0.0/CHANGELOG.md
154
246
  post_install_message:
155
247
  rdoc_options: []
156
248
  require_paths:
@@ -159,23 +251,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
159
251
  requirements:
160
252
  - - ">="
161
253
  - !ruby/object:Gem::Version
162
- version: 1.9.3
254
+ version: '2.4'
255
+ - - "<"
256
+ - !ruby/object:Gem::Version
257
+ version: '2.7'
163
258
  required_rubygems_version: !ruby/object:Gem::Requirement
164
259
  requirements:
165
260
  - - ">="
166
261
  - !ruby/object:Gem::Version
167
262
  version: '0'
168
263
  requirements: []
169
- rubyforge_project:
170
- rubygems_version: 2.5.2
264
+ rubygems_version: 3.0.3
171
265
  signing_key:
172
266
  specification_version: 4
173
- summary: A gem for sending webmention (and pingback) notifications
174
- test_files:
175
- - test/data/sample_html.rb
176
- - test/lib/webmention/crawl_test.rb
177
- - test/lib/webmention/discovery_test.rb
178
- - test/lib/webmention/mention_test.rb
179
- - test/lib/webmention/url_test.rb
180
- - test/lib/webmention/version_test.rb
181
- - test/test_helper.rb
267
+ summary: Webmention notification client
268
+ test_files: []
@@ -1,59 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $:.unshift(File.join(File.dirname(__FILE__), "/../lib"))
4
- require "webmention"
5
- require "link_header"
6
-
7
- url = ARGV[0]
8
-
9
- if url == nil
10
- puts "Usage: webmention http://example.com/post/100"
11
- exit 1
12
- end
13
-
14
- if !Webmention::Client.valid_http_url?(url)
15
- puts "Not a valid URL"
16
- exit 1
17
- end
18
-
19
- client = Webmention::Client.new url
20
-
21
- def debug(msg)
22
- puts msg
23
- end
24
-
25
- debug "Finding links on #{url}"
26
- client.crawl
27
-
28
- links = client.links
29
- debug "Found #{links.length} links:"
30
- debug links.to_a.map{|m| "\t#{m}"}.join("\n")
31
-
32
- debug ""
33
-
34
- links.each do |link|
35
- debug link
36
-
37
- endpoint = Webmention::Client.supports_webmention?(link)
38
- if endpoint
39
- debug "\tDiscovered Webmention endpoint:"
40
- debug "\t#{endpoint}"
41
- debug "\tSending webmention..."
42
- result = Webmention::Client.send_mention endpoint, url, link, true
43
- if result
44
- debug "\tReturned HTTP #{result.code}"
45
- if result.headers['link']
46
- link_headers = LinkHeader.parse result.headers['link']
47
- if status_link = link_headers.find_link(['rel', 'status'])
48
- debug "\tWebmention status: #{status_link.href}"
49
- end
50
- end
51
- else
52
- debug "\tEncountered an unknown error sending this webmention!"
53
- end
54
- else
55
- debug "\tNo webmention endpoint found"
56
- end
57
-
58
- debug ""
59
- end
data/example.rb DELETED
@@ -1,20 +0,0 @@
1
- require './lib/webmention.rb'
2
-
3
- # Send webmentions to any links on the page that have a webmention endpoint
4
- url = 'http://aaronparecki.com/notes/2013/06/23/1/indiewebcamp'
5
- client = Webmention::Client.new url
6
- sent = client.send_mentions
7
- puts "Sent #{sent} mentions"
8
-
9
-
10
- # Discover the webmention endpoint of a target and send the mention
11
- target = "http://indiewebcamp.com/"
12
- endpoint = Webmention::Client.supports_webmention? target
13
- if endpoint
14
- Webmention::Client.send_mention endpoint, "http://source.example.com/post/100", target
15
- end
16
-
17
-
18
- # You can also use the client to send to a specific webmention endpoint
19
- Webmention::Client.send_mention "http://webmention.io/example/webmention", "http://source.example.com/post/100", "http://target.example.com/post/100"
20
-
@@ -1,125 +0,0 @@
1
- class SampleData
2
-
3
- def self.rel_webmention_href
4
- <<-eos
5
- <html>
6
- <head>
7
- <link rel="webmention" href="http://webmention.io/example/webmention">
8
- </head>
9
- </html>
10
- eos
11
- end
12
-
13
- def self.rel_webmention_a_href
14
- <<-eos
15
- <html>
16
- <head>
17
- <a rel="webmention" href="http://webmention.io/example/webmention">webmention</a>
18
- </head>
19
- </html>
20
- eos
21
- end
22
- def self.rel_href_webmention
23
- <<-eos
24
- <html>
25
- <head>
26
- <link href="http://webmention.io/example/webmention" rel="webmention">
27
- </head>
28
- </html>
29
- eos
30
- end
31
-
32
- def self.rel_webmention_org_href
33
- <<-eos
34
- <html>
35
- <head>
36
- <link rel="http://webmention.org" href="http://webmention.io/example/webmention">
37
- </head>
38
- </html>
39
- eos
40
- end
41
-
42
- def self.rel_href_webmention_org
43
- <<-eos
44
- <html>
45
- <head>
46
- <link href="http://webmention.io/example/webmention" rel="http://webmention.org">
47
- </head>
48
- </html>
49
- eos
50
- end
51
-
52
- def self.rel_webmention_org_slash_href
53
- <<-eos
54
- <html>
55
- <head>
56
- <link rel="http://webmention.org/" href="http://webmention.io/example/webmention">
57
- </head>
58
- </html>
59
- eos
60
- end
61
-
62
- def self.rel_href_webmention_org_slash
63
- <<-eos
64
- <html>
65
- <head>
66
- <link href="http://webmention.io/example/webmention" rel="http://webmention.org/">
67
- </head>
68
- </html>
69
- eos
70
- end
71
-
72
- def self.sample_source_post_html
73
- <<-eos
74
- <html>
75
- <head>
76
- <title>Sample Post</title>
77
- </head>
78
- <body class="h-entry">
79
- <p><a href="http://target.example.com/post/4">Link to Target 4</a></p>
80
- <p><a href="http://target.example.com/post/5">Link to Target 5</a></p>
81
- </body>
82
- </html>
83
- eos
84
- end
85
-
86
- def self.rel_webmention_relative_with_path
87
- <<-eos
88
- <html>
89
- <head>
90
- <link href="/example/webmention" rel="webmention">
91
- </head>
92
- </html>
93
- eos
94
- end
95
-
96
- def self.rel_webmention_relative_without_path
97
- <<-eos
98
- <html>
99
- <head>
100
- <link href="webmention.php" rel="webmention">
101
- </head>
102
- </html>
103
- eos
104
- end
105
-
106
- def self.link_tag_multiple_rel_values
107
- <<-eos
108
- <html>
109
- <head>
110
- <link href="http://webmention.io/example/webmention" rel="webmention foo bar">
111
- </head>
112
- </html>
113
- eos
114
- end
115
-
116
- def self.empty_link_tag_no_href
117
- <<-eos
118
- <html>
119
- <head>
120
- <link href="" rel="webmention">
121
- </head>
122
- </html>
123
- eos
124
- end
125
- end