html2rss 0.9.0 → 0.11.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/README.md +323 -270
- data/exe/html2rss +6 -0
- data/html2rss.gemspec +18 -23
- data/lib/html2rss/attribute_post_processors/gsub.rb +30 -8
- data/lib/html2rss/attribute_post_processors/html_to_markdown.rb +7 -2
- data/lib/html2rss/attribute_post_processors/html_transformers/transform_urls_to_absolute_ones.rb +27 -0
- data/lib/html2rss/attribute_post_processors/html_transformers/wrap_img_in_a.rb +41 -0
- data/lib/html2rss/attribute_post_processors/markdown_to_html.rb +11 -2
- data/lib/html2rss/attribute_post_processors/parse_time.rb +11 -4
- data/lib/html2rss/attribute_post_processors/parse_uri.rb +12 -2
- data/lib/html2rss/attribute_post_processors/sanitize_html.rb +40 -44
- data/lib/html2rss/attribute_post_processors/substring.rb +14 -4
- data/lib/html2rss/attribute_post_processors/template.rb +36 -12
- data/lib/html2rss/attribute_post_processors.rb +28 -5
- data/lib/html2rss/cli.rb +29 -0
- data/lib/html2rss/config/channel.rb +117 -0
- data/lib/html2rss/config/selectors.rb +91 -0
- data/lib/html2rss/config.rb +71 -82
- data/lib/html2rss/item.rb +122 -46
- data/lib/html2rss/item_extractors/attribute.rb +20 -7
- data/lib/html2rss/item_extractors/href.rb +20 -4
- data/lib/html2rss/item_extractors/html.rb +18 -6
- data/lib/html2rss/item_extractors/static.rb +18 -7
- data/lib/html2rss/item_extractors/text.rb +17 -5
- data/lib/html2rss/item_extractors.rb +75 -10
- data/lib/html2rss/object_to_xml_converter.rb +56 -0
- data/lib/html2rss/rss_builder/channel.rb +21 -0
- data/lib/html2rss/rss_builder/item.rb +83 -0
- data/lib/html2rss/rss_builder/stylesheet.rb +37 -0
- data/lib/html2rss/rss_builder.rb +96 -0
- data/lib/html2rss/utils.rb +94 -19
- data/lib/html2rss/version.rb +5 -1
- data/lib/html2rss.rb +57 -20
- metadata +53 -165
- data/.gitignore +0 -12
- data/.rspec +0 -4
- data/.rubocop.yml +0 -164
- data/.travis.yml +0 -25
- data/.yardopts +0 -6
- data/CHANGELOG.md +0 -221
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -139
- data/bin/console +0 -15
- data/bin/setup +0 -8
- data/lib/html2rss/feed_builder.rb +0 -81
- data/lib/html2rss/item_extractors/current_time.rb +0 -21
- data/support/logo.png +0 -0
data/lib/html2rss.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'zeitwerk'
|
2
4
|
|
3
5
|
loader = Zeitwerk::Loader.for_gem
|
@@ -7,35 +9,39 @@ require 'yaml'
|
|
7
9
|
|
8
10
|
##
|
9
11
|
# The Html2rss namespace.
|
10
|
-
# Request HTML from an URL and transform it to a RSS 2.0 object.
|
11
12
|
module Html2rss
|
12
13
|
##
|
13
|
-
#
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
# The Html2rss::Error base class.
|
15
|
+
class Error < StandardError; end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Key for the feeds configuration in the YAML file.
|
19
|
+
CONFIG_KEY_FEEDS = :feeds
|
20
|
+
|
21
|
+
##
|
22
|
+
# Returns an RSS object generated from the provided YAML file configuration.
|
17
23
|
#
|
18
24
|
# Example:
|
19
25
|
#
|
20
26
|
# feed = Html2rss.feed_from_yaml_config(File.join(['spec', 'config.test.yml']), 'nuxt-releases')
|
21
27
|
# # => #<RSS::Rss:0x00007fb2f6331228
|
22
|
-
#
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
28
|
+
#
|
29
|
+
# @param file [String] Path to the YAML file.
|
30
|
+
# @param name [String, Symbol, nil] Name of the feed in the YAML file.
|
31
|
+
# @param global_config [Hash] Global options (e.g., HTTP headers).
|
32
|
+
# @param params [Hash] Dynamic parameters for the feed configuration.
|
33
|
+
# @return [RSS::Rss] RSS object generated from the configuration.
|
34
|
+
def self.feed_from_yaml_config(file, name = nil, global_config: {}, params: {})
|
35
|
+
yaml = load_yaml(file)
|
36
|
+
feeds = yaml[CONFIG_KEY_FEEDS] || {}
|
27
37
|
|
28
|
-
feed_config = yaml
|
29
|
-
global_config = yaml.reject { |key| key == 'feeds' }
|
38
|
+
feed_config = find_feed_config(yaml, feeds, name, global_config)
|
30
39
|
|
31
|
-
|
32
|
-
feed(config)
|
40
|
+
feed(Config.new(feed_config, global_config, params))
|
33
41
|
end
|
34
42
|
|
35
43
|
##
|
36
|
-
# Returns
|
37
|
-
#
|
38
|
-
# `config`: can be a Hash or an instance of Html2rss::Config.
|
44
|
+
# Returns an RSS object generated from the provided configuration.
|
39
45
|
#
|
40
46
|
# Example:
|
41
47
|
#
|
@@ -48,11 +54,42 @@ module Html2rss
|
|
48
54
|
# }
|
49
55
|
# )
|
50
56
|
# # => #<RSS::Rss:0x00007fb2f48d14a0 ...>
|
51
|
-
#
|
57
|
+
#
|
58
|
+
# @param config [Hash<Symbol, Object>, Html2rss::Config] Feed configuration.
|
59
|
+
# @return [RSS::Rss] RSS object generated from the configuration.
|
52
60
|
def self.feed(config)
|
53
61
|
config = Config.new(config) unless config.is_a?(Config)
|
62
|
+
RssBuilder.build(config)
|
63
|
+
end
|
54
64
|
|
55
|
-
|
56
|
-
|
65
|
+
##
|
66
|
+
# Loads and parses the YAML file.
|
67
|
+
#
|
68
|
+
# @param file [String] Path to the YAML file.
|
69
|
+
# @return [Hash] Parsed YAML content.
|
70
|
+
def self.load_yaml(file)
|
71
|
+
YAML.safe_load_file(file, symbolize_names: true)
|
57
72
|
end
|
73
|
+
|
74
|
+
##
|
75
|
+
# Builds the feed configuration based on the provided parameters.
|
76
|
+
#
|
77
|
+
# @param yaml [Hash] Parsed YAML content.
|
78
|
+
# @param feeds [Hash] Feeds from the YAML content.
|
79
|
+
# @param feed_name [String, Symbol, nil] Name of the feed in the YAML file.
|
80
|
+
# @param global_config [Hash] Global options (e.g., HTTP headers).
|
81
|
+
# @return [Hash] Feed configuration.
|
82
|
+
def self.find_feed_config(yaml, feeds, feed_name, global_config)
|
83
|
+
return yaml unless feed_name
|
84
|
+
|
85
|
+
feed_name = feed_name.to_sym
|
86
|
+
if feeds.key?(feed_name)
|
87
|
+
global_config.merge!(yaml.reject { |key| key == CONFIG_KEY_FEEDS })
|
88
|
+
feeds[feed_name]
|
89
|
+
else
|
90
|
+
yaml
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
private_class_method :load_yaml, :find_feed_config
|
58
95
|
end
|
metadata
CHANGED
@@ -1,35 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html2rss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gil Desmarais
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activesupport
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '5'
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '7'
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '5'
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '7'
|
33
13
|
- !ruby/object:Gem::Dependency
|
34
14
|
name: addressable
|
35
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,36 +24,28 @@ dependencies:
|
|
44
24
|
- - "~>"
|
45
25
|
- !ruby/object:Gem::Version
|
46
26
|
version: '2.7'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: builder
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '0'
|
61
27
|
- !ruby/object:Gem::Dependency
|
62
28
|
name: faraday
|
63
29
|
requirement: !ruby/object:Gem::Requirement
|
64
30
|
requirements:
|
65
|
-
- - "
|
31
|
+
- - ">"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.1
|
34
|
+
- - "<"
|
66
35
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
36
|
+
version: '3.0'
|
68
37
|
type: :runtime
|
69
38
|
prerelease: false
|
70
39
|
version_requirements: !ruby/object:Gem::Requirement
|
71
40
|
requirements:
|
72
|
-
- - "
|
41
|
+
- - ">"
|
73
42
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
43
|
+
version: 2.0.1
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.0'
|
75
47
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
48
|
+
name: faraday-follow_redirects
|
77
49
|
requirement: !ruby/object:Gem::Requirement
|
78
50
|
requirements:
|
79
51
|
- - ">="
|
@@ -135,35 +107,7 @@ dependencies:
|
|
135
107
|
- !ruby/object:Gem::Version
|
136
108
|
version: '2.0'
|
137
109
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
140
|
-
requirements:
|
141
|
-
- - "~>"
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '2.0'
|
144
|
-
type: :runtime
|
145
|
-
prerelease: false
|
146
|
-
version_requirements: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - "~>"
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '2.0'
|
151
|
-
- !ruby/object:Gem::Dependency
|
152
|
-
name: sanitize
|
153
|
-
requirement: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- - "~>"
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '5.0'
|
158
|
-
type: :runtime
|
159
|
-
prerelease: false
|
160
|
-
version_requirements: !ruby/object:Gem::Requirement
|
161
|
-
requirements:
|
162
|
-
- - "~>"
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: '5.0'
|
165
|
-
- !ruby/object:Gem::Dependency
|
166
|
-
name: to_regexp
|
110
|
+
name: regexp_parser
|
167
111
|
requirement: !ruby/object:Gem::Requirement
|
168
112
|
requirements:
|
169
113
|
- - ">="
|
@@ -177,41 +121,27 @@ dependencies:
|
|
177
121
|
- !ruby/object:Gem::Version
|
178
122
|
version: '0'
|
179
123
|
- !ruby/object:Gem::Dependency
|
180
|
-
name:
|
124
|
+
name: reverse_markdown
|
181
125
|
requirement: !ruby/object:Gem::Requirement
|
182
126
|
requirements:
|
183
|
-
- - "
|
127
|
+
- - "~>"
|
184
128
|
- !ruby/object:Gem::Version
|
185
|
-
version: '0'
|
129
|
+
version: '2.0'
|
186
130
|
type: :runtime
|
187
131
|
prerelease: false
|
188
132
|
version_requirements: !ruby/object:Gem::Requirement
|
189
133
|
requirements:
|
190
|
-
- - "
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
version: '0'
|
193
|
-
- !ruby/object:Gem::Dependency
|
194
|
-
name: bundler
|
195
|
-
requirement: !ruby/object:Gem::Requirement
|
196
|
-
requirements:
|
197
|
-
- - ">="
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
version: '0'
|
200
|
-
type: :development
|
201
|
-
prerelease: false
|
202
|
-
version_requirements: !ruby/object:Gem::Requirement
|
203
|
-
requirements:
|
204
|
-
- - ">="
|
134
|
+
- - "~>"
|
205
135
|
- !ruby/object:Gem::Version
|
206
|
-
version: '0'
|
136
|
+
version: '2.0'
|
207
137
|
- !ruby/object:Gem::Dependency
|
208
|
-
name:
|
138
|
+
name: rss
|
209
139
|
requirement: !ruby/object:Gem::Requirement
|
210
140
|
requirements:
|
211
141
|
- - ">="
|
212
142
|
- !ruby/object:Gem::Version
|
213
143
|
version: '0'
|
214
|
-
type: :
|
144
|
+
type: :runtime
|
215
145
|
prerelease: false
|
216
146
|
version_requirements: !ruby/object:Gem::Requirement
|
217
147
|
requirements:
|
@@ -219,69 +149,27 @@ dependencies:
|
|
219
149
|
- !ruby/object:Gem::Version
|
220
150
|
version: '0'
|
221
151
|
- !ruby/object:Gem::Dependency
|
222
|
-
name:
|
152
|
+
name: sanitize
|
223
153
|
requirement: !ruby/object:Gem::Requirement
|
224
154
|
requirements:
|
225
155
|
- - "~>"
|
226
156
|
- !ruby/object:Gem::Version
|
227
|
-
version: '
|
228
|
-
type: :
|
157
|
+
version: '6.0'
|
158
|
+
type: :runtime
|
229
159
|
prerelease: false
|
230
160
|
version_requirements: !ruby/object:Gem::Requirement
|
231
161
|
requirements:
|
232
162
|
- - "~>"
|
233
163
|
- !ruby/object:Gem::Version
|
234
|
-
version: '
|
164
|
+
version: '6.0'
|
235
165
|
- !ruby/object:Gem::Dependency
|
236
|
-
name:
|
166
|
+
name: thor
|
237
167
|
requirement: !ruby/object:Gem::Requirement
|
238
168
|
requirements:
|
239
169
|
- - ">="
|
240
170
|
- !ruby/object:Gem::Version
|
241
171
|
version: '0'
|
242
|
-
type: :
|
243
|
-
prerelease: false
|
244
|
-
version_requirements: !ruby/object:Gem::Requirement
|
245
|
-
requirements:
|
246
|
-
- - ">="
|
247
|
-
- !ruby/object:Gem::Version
|
248
|
-
version: '0'
|
249
|
-
- !ruby/object:Gem::Dependency
|
250
|
-
name: rubocop-performance
|
251
|
-
requirement: !ruby/object:Gem::Requirement
|
252
|
-
requirements:
|
253
|
-
- - ">="
|
254
|
-
- !ruby/object:Gem::Version
|
255
|
-
version: '0'
|
256
|
-
type: :development
|
257
|
-
prerelease: false
|
258
|
-
version_requirements: !ruby/object:Gem::Requirement
|
259
|
-
requirements:
|
260
|
-
- - ">="
|
261
|
-
- !ruby/object:Gem::Version
|
262
|
-
version: '0'
|
263
|
-
- !ruby/object:Gem::Dependency
|
264
|
-
name: rubocop-rspec
|
265
|
-
requirement: !ruby/object:Gem::Requirement
|
266
|
-
requirements:
|
267
|
-
- - ">="
|
268
|
-
- !ruby/object:Gem::Version
|
269
|
-
version: '0'
|
270
|
-
type: :development
|
271
|
-
prerelease: false
|
272
|
-
version_requirements: !ruby/object:Gem::Requirement
|
273
|
-
requirements:
|
274
|
-
- - ">="
|
275
|
-
- !ruby/object:Gem::Version
|
276
|
-
version: '0'
|
277
|
-
- !ruby/object:Gem::Dependency
|
278
|
-
name: simplecov
|
279
|
-
requirement: !ruby/object:Gem::Requirement
|
280
|
-
requirements:
|
281
|
-
- - ">="
|
282
|
-
- !ruby/object:Gem::Version
|
283
|
-
version: '0'
|
284
|
-
type: :development
|
172
|
+
type: :runtime
|
285
173
|
prerelease: false
|
286
174
|
version_requirements: !ruby/object:Gem::Requirement
|
287
175
|
requirements:
|
@@ -289,13 +177,13 @@ dependencies:
|
|
289
177
|
- !ruby/object:Gem::Version
|
290
178
|
version: '0'
|
291
179
|
- !ruby/object:Gem::Dependency
|
292
|
-
name:
|
180
|
+
name: tzinfo
|
293
181
|
requirement: !ruby/object:Gem::Requirement
|
294
182
|
requirements:
|
295
183
|
- - ">="
|
296
184
|
- !ruby/object:Gem::Version
|
297
185
|
version: '0'
|
298
|
-
type: :
|
186
|
+
type: :runtime
|
299
187
|
prerelease: false
|
300
188
|
version_requirements: !ruby/object:Gem::Requirement
|
301
189
|
requirements:
|
@@ -303,69 +191,69 @@ dependencies:
|
|
303
191
|
- !ruby/object:Gem::Version
|
304
192
|
version: '0'
|
305
193
|
- !ruby/object:Gem::Dependency
|
306
|
-
name:
|
194
|
+
name: zeitwerk
|
307
195
|
requirement: !ruby/object:Gem::Requirement
|
308
196
|
requirements:
|
309
197
|
- - ">="
|
310
198
|
- !ruby/object:Gem::Version
|
311
199
|
version: '0'
|
312
|
-
type: :
|
200
|
+
type: :runtime
|
313
201
|
prerelease: false
|
314
202
|
version_requirements: !ruby/object:Gem::Requirement
|
315
203
|
requirements:
|
316
204
|
- - ">="
|
317
205
|
- !ruby/object:Gem::Version
|
318
206
|
version: '0'
|
319
|
-
description:
|
320
|
-
|
207
|
+
description: Supports JSON content, custom HTTP headers, and post-processing of extracted
|
208
|
+
content.
|
321
209
|
email:
|
322
210
|
- html2rss@desmarais.de
|
323
|
-
executables:
|
211
|
+
executables:
|
212
|
+
- html2rss
|
324
213
|
extensions: []
|
325
214
|
extra_rdoc_files: []
|
326
215
|
files:
|
327
|
-
- ".gitignore"
|
328
|
-
- ".rspec"
|
329
|
-
- ".rubocop.yml"
|
330
|
-
- ".travis.yml"
|
331
|
-
- ".yardopts"
|
332
|
-
- CHANGELOG.md
|
333
|
-
- Gemfile
|
334
|
-
- Gemfile.lock
|
335
216
|
- LICENSE
|
336
217
|
- README.md
|
337
|
-
-
|
338
|
-
- bin/setup
|
218
|
+
- exe/html2rss
|
339
219
|
- html2rss.gemspec
|
340
220
|
- lib/html2rss.rb
|
341
221
|
- lib/html2rss/attribute_post_processors.rb
|
342
222
|
- lib/html2rss/attribute_post_processors/gsub.rb
|
343
223
|
- lib/html2rss/attribute_post_processors/html_to_markdown.rb
|
224
|
+
- lib/html2rss/attribute_post_processors/html_transformers/transform_urls_to_absolute_ones.rb
|
225
|
+
- lib/html2rss/attribute_post_processors/html_transformers/wrap_img_in_a.rb
|
344
226
|
- lib/html2rss/attribute_post_processors/markdown_to_html.rb
|
345
227
|
- lib/html2rss/attribute_post_processors/parse_time.rb
|
346
228
|
- lib/html2rss/attribute_post_processors/parse_uri.rb
|
347
229
|
- lib/html2rss/attribute_post_processors/sanitize_html.rb
|
348
230
|
- lib/html2rss/attribute_post_processors/substring.rb
|
349
231
|
- lib/html2rss/attribute_post_processors/template.rb
|
232
|
+
- lib/html2rss/cli.rb
|
350
233
|
- lib/html2rss/config.rb
|
351
|
-
- lib/html2rss/
|
234
|
+
- lib/html2rss/config/channel.rb
|
235
|
+
- lib/html2rss/config/selectors.rb
|
352
236
|
- lib/html2rss/item.rb
|
353
237
|
- lib/html2rss/item_extractors.rb
|
354
238
|
- lib/html2rss/item_extractors/attribute.rb
|
355
|
-
- lib/html2rss/item_extractors/current_time.rb
|
356
239
|
- lib/html2rss/item_extractors/href.rb
|
357
240
|
- lib/html2rss/item_extractors/html.rb
|
358
241
|
- lib/html2rss/item_extractors/static.rb
|
359
242
|
- lib/html2rss/item_extractors/text.rb
|
243
|
+
- lib/html2rss/object_to_xml_converter.rb
|
244
|
+
- lib/html2rss/rss_builder.rb
|
245
|
+
- lib/html2rss/rss_builder/channel.rb
|
246
|
+
- lib/html2rss/rss_builder/item.rb
|
247
|
+
- lib/html2rss/rss_builder/stylesheet.rb
|
360
248
|
- lib/html2rss/utils.rb
|
361
249
|
- lib/html2rss/version.rb
|
362
|
-
|
363
|
-
homepage: https://github.com/gildesmarais/html2rss
|
250
|
+
homepage: https://github.com/html2rss/html2rss
|
364
251
|
licenses:
|
365
252
|
- MIT
|
366
253
|
metadata:
|
367
254
|
allowed_push_host: https://rubygems.org
|
368
|
-
changelog_uri: https://github.com/
|
255
|
+
changelog_uri: https://github.com/html2rss/html2rss/releases/tag/v0.11.0
|
256
|
+
rubygems_mfa_required: 'true'
|
369
257
|
post_install_message:
|
370
258
|
rdoc_options: []
|
371
259
|
require_paths:
|
@@ -374,16 +262,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
374
262
|
requirements:
|
375
263
|
- - ">="
|
376
264
|
- !ruby/object:Gem::Version
|
377
|
-
version:
|
265
|
+
version: '3.1'
|
378
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
379
267
|
requirements:
|
380
268
|
- - ">="
|
381
269
|
- !ruby/object:Gem::Version
|
382
270
|
version: '0'
|
383
271
|
requirements: []
|
384
|
-
|
385
|
-
rubygems_version: 2.7.7
|
272
|
+
rubygems_version: 3.5.11
|
386
273
|
signing_key:
|
387
274
|
specification_version: 4
|
388
|
-
summary:
|
275
|
+
summary: Generates RSS feeds from websites by scraping a URL and using CSS selectors
|
276
|
+
to extract item.
|
389
277
|
test_files: []
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,164 +0,0 @@
|
|
1
|
-
require:
|
2
|
-
- rubocop-performance
|
3
|
-
- rubocop-rspec
|
4
|
-
|
5
|
-
AllCops:
|
6
|
-
TargetRubyVersion: 2.5
|
7
|
-
DisplayCopNames: true
|
8
|
-
|
9
|
-
Metrics/BlockLength:
|
10
|
-
Exclude:
|
11
|
-
- "**/*_spec.rb"
|
12
|
-
- html2rss.gemspec
|
13
|
-
|
14
|
-
Metrics/ModuleLength:
|
15
|
-
Exclude:
|
16
|
-
- "**/*_spec.rb"
|
17
|
-
|
18
|
-
Layout/ClassStructure:
|
19
|
-
Enabled: true
|
20
|
-
|
21
|
-
Layout/HeredocArgumentClosingParenthesis:
|
22
|
-
Enabled: true
|
23
|
-
|
24
|
-
Layout/LineLength:
|
25
|
-
Max: 110
|
26
|
-
|
27
|
-
Layout/MultilineArrayLineBreaks:
|
28
|
-
Enabled: true
|
29
|
-
|
30
|
-
Layout/MultilineHashKeyLineBreaks:
|
31
|
-
Enabled: true
|
32
|
-
|
33
|
-
Layout/SpaceInsideParens:
|
34
|
-
Enabled: true
|
35
|
-
|
36
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
37
|
-
Enabled: true
|
38
|
-
|
39
|
-
Layout/SpaceAroundMethodCallOperator:
|
40
|
-
Enabled: true
|
41
|
-
|
42
|
-
Lint/HeredocMethodCallPosition:
|
43
|
-
Enabled: true
|
44
|
-
|
45
|
-
Lint/NumberConversion:
|
46
|
-
Enabled: false
|
47
|
-
|
48
|
-
Lint/DeprecatedOpenSSLConstant:
|
49
|
-
Enabled: true
|
50
|
-
|
51
|
-
Lint/MixedRegexpCaptureTypes:
|
52
|
-
Enabled: true
|
53
|
-
|
54
|
-
Lint/RaiseException:
|
55
|
-
Enabled: true
|
56
|
-
|
57
|
-
Lint/StructNewOverride:
|
58
|
-
Enabled: true
|
59
|
-
|
60
|
-
|
61
|
-
Performance/CaseWhenSplat:
|
62
|
-
Enabled: true
|
63
|
-
|
64
|
-
Performance/ChainArrayAllocation:
|
65
|
-
Enabled: true
|
66
|
-
|
67
|
-
Performance/OpenStruct:
|
68
|
-
Enabled: true
|
69
|
-
|
70
|
-
|
71
|
-
RSpec/NestedGroups:
|
72
|
-
Exclude:
|
73
|
-
- spec/html2rss_spec.rb
|
74
|
-
|
75
|
-
|
76
|
-
Style/AsciiComments:
|
77
|
-
Enabled: false
|
78
|
-
|
79
|
-
Style/AutoResourceCleanup:
|
80
|
-
Enabled: true
|
81
|
-
|
82
|
-
Style/BlockDelimiters:
|
83
|
-
Enabled: true
|
84
|
-
Exclude:
|
85
|
-
- '**/*_spec.rb'
|
86
|
-
|
87
|
-
Style/HashEachMethods:
|
88
|
-
Enabled: true
|
89
|
-
|
90
|
-
Style/HashTransformKeys:
|
91
|
-
Enabled: true
|
92
|
-
|
93
|
-
Style/HashTransformValues:
|
94
|
-
Enabled: true
|
95
|
-
|
96
|
-
Style/CollectionMethods:
|
97
|
-
Enabled: true
|
98
|
-
|
99
|
-
Style/ConstantVisibility:
|
100
|
-
Enabled: true
|
101
|
-
|
102
|
-
Style/DateTime:
|
103
|
-
Enabled: true
|
104
|
-
|
105
|
-
Style/Documentation:
|
106
|
-
Exclude:
|
107
|
-
- lib/html2rss/version.rb
|
108
|
-
|
109
|
-
Style/DocumentationMethod:
|
110
|
-
Enabled: false
|
111
|
-
|
112
|
-
Style/FormatStringToken:
|
113
|
-
Enabled: false
|
114
|
-
|
115
|
-
Style/FrozenStringLiteralComment:
|
116
|
-
Enabled: false
|
117
|
-
|
118
|
-
Style/HashSyntax:
|
119
|
-
Enabled: true
|
120
|
-
|
121
|
-
Style/InlineComment:
|
122
|
-
Enabled: true
|
123
|
-
|
124
|
-
Style/IpAddresses:
|
125
|
-
Enabled: true
|
126
|
-
|
127
|
-
Style/MethodCallWithArgsParentheses:
|
128
|
-
Enabled: false
|
129
|
-
|
130
|
-
Style/MethodCalledOnDoEndBlock:
|
131
|
-
Enabled: true
|
132
|
-
|
133
|
-
Style/MissingElse:
|
134
|
-
Enabled: true
|
135
|
-
|
136
|
-
Style/MultilineMethodSignature:
|
137
|
-
Enabled: true
|
138
|
-
|
139
|
-
Style/OptionHash:
|
140
|
-
Enabled: true
|
141
|
-
|
142
|
-
Style/ReturnNil:
|
143
|
-
Enabled: true
|
144
|
-
|
145
|
-
Style/SingleLineBlockParams:
|
146
|
-
Enabled: true
|
147
|
-
|
148
|
-
Style/StderrPuts:
|
149
|
-
Enabled: true
|
150
|
-
|
151
|
-
Style/StringMethods:
|
152
|
-
Enabled: true
|
153
|
-
|
154
|
-
Style/ExponentialNotation:
|
155
|
-
Enabled: true
|
156
|
-
|
157
|
-
Style/RedundantRegexpCharacterClass:
|
158
|
-
Enabled: true
|
159
|
-
|
160
|
-
Style/RedundantRegexpEscape:
|
161
|
-
Enabled: true
|
162
|
-
|
163
|
-
Style/SlicingWithRange:
|
164
|
-
Enabled: true
|
data/.travis.yml
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
cache: bundler
|
4
|
-
|
5
|
-
before_install:
|
6
|
-
- gem update --system
|
7
|
-
- gem install bundler
|
8
|
-
|
9
|
-
bundler_args: "--jobs=3 --retry=3"
|
10
|
-
|
11
|
-
rvm:
|
12
|
-
- 2.5.8
|
13
|
-
- 2.6.6
|
14
|
-
- 2.7.1
|
15
|
-
|
16
|
-
script:
|
17
|
-
- bundle exec rubocop -F
|
18
|
-
- bundle exec rspec
|
19
|
-
|
20
|
-
deploy:
|
21
|
-
provider: rubygems
|
22
|
-
api_key:
|
23
|
-
secure: bM3Yl8iWdB1Amra3Bm6bIH/mTwHcRhZrX8etFFbJANxIbkhzUOyTKcDMYiWUVM/mBzzv0NOuRejrDR6R0v7E2udrKcLQFCBtv7HqPAXIlkEEyxZy+M1kTqcPzP872E+ZKTn93vCzbiXBLYoMmqgCzqvcO87IBYNzTURHkfFjaYJJdVyZ5EVtbpXf4FhBvuQf9LTk/ocClgwYeuqd+45lO7qHoPatsvbY0vCOfKaiwkdOkBt+hjc56awcYSc9CXn0DCatebPQmQmdrqFd8fKgyCatWS3n+8TPmvzVfNJe44wg3oNfHbWruP85I2LE9ei1iG+iGQIF60fMhGgMJ4EM3REXDE5Mg+GA5uJcgH9Poirut3Ih65jtAzYNGohlmEmc7ysKc0dmG1O3ndwrHjh5KePrOAGDaW6QKG+m5ebIZ+mgrEA+ZVU1mjDM8FlbSKAayoPloslZdllSv7miwGzh6xrHWGQSCURZAkygFh+Kd+Kg1eVlEs+n6aObod82mEOfBPvWPacOrE2fY4B0ocFOKotZBCZSD0ZIixlyslRTnmcJfpRNlYLsQ56oy5uPNUccPQ86NSmmE+qbRdPCLQCKLPm2iYBgOa5iQrfHR/fUgcO0skAZiW4o9QflDgIFS/G+BE6FMHIvjkKA6Ae4KbqGzlF5pGFdo6p4MhlvubwjsVI=
|
24
|
-
on:
|
25
|
-
tags: true
|