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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +323 -270
  3. data/exe/html2rss +6 -0
  4. data/html2rss.gemspec +18 -23
  5. data/lib/html2rss/attribute_post_processors/gsub.rb +30 -8
  6. data/lib/html2rss/attribute_post_processors/html_to_markdown.rb +7 -2
  7. data/lib/html2rss/attribute_post_processors/html_transformers/transform_urls_to_absolute_ones.rb +27 -0
  8. data/lib/html2rss/attribute_post_processors/html_transformers/wrap_img_in_a.rb +41 -0
  9. data/lib/html2rss/attribute_post_processors/markdown_to_html.rb +11 -2
  10. data/lib/html2rss/attribute_post_processors/parse_time.rb +11 -4
  11. data/lib/html2rss/attribute_post_processors/parse_uri.rb +12 -2
  12. data/lib/html2rss/attribute_post_processors/sanitize_html.rb +40 -44
  13. data/lib/html2rss/attribute_post_processors/substring.rb +14 -4
  14. data/lib/html2rss/attribute_post_processors/template.rb +36 -12
  15. data/lib/html2rss/attribute_post_processors.rb +28 -5
  16. data/lib/html2rss/cli.rb +29 -0
  17. data/lib/html2rss/config/channel.rb +117 -0
  18. data/lib/html2rss/config/selectors.rb +91 -0
  19. data/lib/html2rss/config.rb +71 -82
  20. data/lib/html2rss/item.rb +122 -46
  21. data/lib/html2rss/item_extractors/attribute.rb +20 -7
  22. data/lib/html2rss/item_extractors/href.rb +20 -4
  23. data/lib/html2rss/item_extractors/html.rb +18 -6
  24. data/lib/html2rss/item_extractors/static.rb +18 -7
  25. data/lib/html2rss/item_extractors/text.rb +17 -5
  26. data/lib/html2rss/item_extractors.rb +75 -10
  27. data/lib/html2rss/object_to_xml_converter.rb +56 -0
  28. data/lib/html2rss/rss_builder/channel.rb +21 -0
  29. data/lib/html2rss/rss_builder/item.rb +83 -0
  30. data/lib/html2rss/rss_builder/stylesheet.rb +37 -0
  31. data/lib/html2rss/rss_builder.rb +96 -0
  32. data/lib/html2rss/utils.rb +94 -19
  33. data/lib/html2rss/version.rb +5 -1
  34. data/lib/html2rss.rb +57 -20
  35. metadata +53 -165
  36. data/.gitignore +0 -12
  37. data/.rspec +0 -4
  38. data/.rubocop.yml +0 -164
  39. data/.travis.yml +0 -25
  40. data/.yardopts +0 -6
  41. data/CHANGELOG.md +0 -221
  42. data/Gemfile +0 -8
  43. data/Gemfile.lock +0 -139
  44. data/bin/console +0 -15
  45. data/bin/setup +0 -8
  46. data/lib/html2rss/feed_builder.rb +0 -81
  47. data/lib/html2rss/item_extractors/current_time.rb +0 -21
  48. data/support/logo.png +0 -0
data/CHANGELOG.md DELETED
@@ -1,221 +0,0 @@
1
- # [](https://github.com/gildesmarais/html2rss/compare/v0.9.0...v) (2020-06-19)
2
-
3
-
4
-
5
- # [0.9.0](https://github.com/gildesmarais/html2rss/compare/v0.8.2...v0.9.0) (2020-06-19)
6
-
7
-
8
- ### Features
9
-
10
- * add option to reverse order of channel items ([#82](https://github.com/gildesmarais/html2rss/issues/82)) ([2019977](https://github.com/gildesmarais/html2rss/commit/2019977b09fdc29c427b8b7e478857ca3f9f7027)), closes [#80](https://github.com/gildesmarais/html2rss/issues/80)
11
- * require at least ruby version 2.5 ([#85](https://github.com/gildesmarais/html2rss/issues/85)) ([0ff6ee3](https://github.com/gildesmarais/html2rss/commit/0ff6ee355a87331f8afbfbdac1496cdfa36f3e5f))
12
- * support ruby 2.7 ([#75](https://github.com/gildesmarais/html2rss/issues/75)) ([56ddbbe](https://github.com/gildesmarais/html2rss/commit/56ddbbe7c921e26057511754cf058fdd69fc9e0c))
13
-
14
-
15
-
16
- ## [0.8.2](https://github.com/gildesmarais/html2rss/compare/v0.8.1...v0.8.2) (2019-11-09)
17
-
18
-
19
- ### Features
20
-
21
- * improve url handling by sanitizing and normalizing urls ([#70](https://github.com/gildesmarais/html2rss/issues/70)) ([02cd551](https://github.com/gildesmarais/html2rss/commit/02cd551f4411b050bbb6e4ed942d7b3d707cd86a))
22
-
23
-
24
-
25
- ## [0.8.1](https://github.com/gildesmarais/html2rss/compare/v0.8.0...v0.8.1) (2019-11-08)
26
-
27
-
28
- ### Features
29
-
30
- * **config:** improve generation of channel.title from channel.url ([#68](https://github.com/gildesmarais/html2rss/issues/68)) ([bc8ecbb](https://github.com/gildesmarais/html2rss/commit/bc8ecbb9623ce08a6cd067da1cb5fd0a996a9d40))
31
- * **parse_uri:** squish url to not fail on url with padding spaces ([#67](https://github.com/gildesmarais/html2rss/issues/67)) ([e349449](https://github.com/gildesmarais/html2rss/commit/e34944995e669c0f8dd6a1e78acb31bd3db9fcf6))
32
- * auto generate nicer channel's title and description ([#63](https://github.com/gildesmarais/html2rss/issues/63)) ([6db28f6](https://github.com/gildesmarais/html2rss/commit/6db28f67a99b893fb09d7f8d337027a5a48dbe85))
33
- * change default ttl to 360 ([#65](https://github.com/gildesmarais/html2rss/issues/65)) ([605c8db](https://github.com/gildesmarais/html2rss/commit/605c8db4f74329128bd45961e2c1e5fa344924a5))
34
-
35
-
36
-
37
- # [0.8.0](https://github.com/gildesmarais/html2rss/compare/v0.7.0...v0.8.0) (2019-11-02)
38
-
39
-
40
- ### Features
41
-
42
- * **post_processors:** add markdown to html ([#54](https://github.com/gildesmarais/html2rss/issues/54)) ([cdf77b8](https://github.com/gildesmarais/html2rss/commit/cdf77b8696eebed7a5cffda7cfd75ddc64db364b))
43
- * **post_processors:** support annotated tokens ([#62](https://github.com/gildesmarais/html2rss/issues/62)) ([b57bd7b](https://github.com/gildesmarais/html2rss/commit/b57bd7b4cd22c8c51e8b2f526187b5997d77b25c)), closes [#56](https://github.com/gildesmarais/html2rss/issues/56)
44
-
45
-
46
-
47
- # [0.7.0](https://github.com/gildesmarais/html2rss/compare/v0.6.0...v0.7.0) (2019-10-28)
48
-
49
-
50
- ### Features
51
-
52
- * **post_processors:** add gsub ([#53](https://github.com/gildesmarais/html2rss/issues/53)) ([de268ae](https://github.com/gildesmarais/html2rss/commit/de268ae64f2f946103523c66919806b50c6d031a))
53
- * support enclosure on items ([#52](https://github.com/gildesmarais/html2rss/issues/52)) ([80a30a1](https://github.com/gildesmarais/html2rss/commit/80a30a1944e9a256fc9b5497589b9e20a098c444)), closes [#50](https://github.com/gildesmarais/html2rss/issues/50)
54
- * **postprocessor:** always wrap img tag in an a tag in sanitze html ([#51](https://github.com/gildesmarais/html2rss/issues/51)) ([6c7fb88](https://github.com/gildesmarais/html2rss/commit/6c7fb88c9c87fb977645b21a7b13e70367b10608))
55
- * handle json array response ([#49](https://github.com/gildesmarais/html2rss/issues/49)) ([288c2af](https://github.com/gildesmarais/html2rss/commit/288c2af09909d5c54109f8ce6a566914dd188b0b))
56
- * use zeitwerk for autoloading ([#47](https://github.com/gildesmarais/html2rss/issues/47)) ([bce523d](https://github.com/gildesmarais/html2rss/commit/bce523d64a58c52490a3326c3f85beba2e46088f))
57
-
58
-
59
-
60
- # [0.6.0](https://github.com/gildesmarais/html2rss/compare/v0.5.2...v0.6.0) (2019-10-05)
61
-
62
-
63
- ### Bug Fixes
64
-
65
- * **specs:** simplecov does not exclude files from spec/ ([#44](https://github.com/gildesmarais/html2rss/issues/44)) ([b0ca780](https://github.com/gildesmarais/html2rss/commit/b0ca780ebb69185ef7e534e1d36bd606073dc471))
66
-
67
-
68
- ### Features
69
-
70
- * memoize ItemExtractor lookups ([#45](https://github.com/gildesmarais/html2rss/issues/45)) ([e88321c](https://github.com/gildesmarais/html2rss/commit/e88321c52b40c3f1581a576ae50e7f3416df4772))
71
- * support setting of request headers in feed config ([#41](https://github.com/gildesmarais/html2rss/issues/41)) ([a7aca11](https://github.com/gildesmarais/html2rss/commit/a7aca11a708c4f3a3a5f9f6511c0c1e86ec63595)), closes [#38](https://github.com/gildesmarais/html2rss/issues/38)
72
- * **ci:** run rubocop on ci ([#40](https://github.com/gildesmarais/html2rss/issues/40)) ([f4ec8d1](https://github.com/gildesmarais/html2rss/commit/f4ec8d15681c8a232dbad6a933f7877aec33cc4f))
73
-
74
-
75
-
76
- ## [0.5.2](https://github.com/gildesmarais/html2rss/compare/v0.5.1...v0.5.2) (2019-09-19)
77
-
78
-
79
-
80
- ## [0.5.1](https://github.com/gildesmarais/html2rss/compare/v0.5.0...v0.5.1) (2019-09-19)
81
-
82
-
83
- ### Bug Fixes
84
-
85
- * rss contains additional categories ([#39](https://github.com/gildesmarais/html2rss/issues/39)) ([ed164ef](https://github.com/gildesmarais/html2rss/commit/ed164efdf5e2775f30130d0949d96ecee4f9cea0))
86
-
87
-
88
-
89
- # [0.5.0](https://github.com/gildesmarais/html2rss/compare/v0.4.1...v0.5.0) (2019-09-18)
90
-
91
-
92
- ### Features
93
-
94
- * support JSON ([#37](https://github.com/gildesmarais/html2rss/issues/37)) ([d258f73](https://github.com/gildesmarais/html2rss/commit/d258f73f30587e48f5854013fa0e67c88bb23a52))
95
-
96
-
97
-
98
- ## [0.4.1](https://github.com/gildesmarais/html2rss/compare/v0.4.0...v0.4.1) (2019-09-18)
99
-
100
-
101
- ### Bug Fixes
102
-
103
- * building absolute url fails when a fragment is present ([#35](https://github.com/gildesmarais/html2rss/issues/35)) ([c1b6dc7](https://github.com/gildesmarais/html2rss/commit/c1b6dc7d72f3b93b64c81a455cfd24909de841a9))
104
-
105
-
106
- ### Features
107
-
108
- * **postprocessors:** add html to markdown ([#34](https://github.com/gildesmarais/html2rss/issues/34)) ([6a4a462](https://github.com/gildesmarais/html2rss/commit/6a4a46269d0d185923f1e817141ac7901ce74784))
109
-
110
-
111
-
112
- # [0.4.0](https://github.com/gildesmarais/html2rss/compare/v0.3.3...v0.4.0) (2019-09-07)
113
-
114
-
115
- ### Bug Fixes
116
-
117
- * **template:** breaks when any method returns nil ([#32](https://github.com/gildesmarais/html2rss/issues/32)) ([0709958](https://github.com/gildesmarais/html2rss/commit/0709958a2bf3e5df6dbd7709b2f7734c7e9b3978))
118
-
119
-
120
- ### Features
121
-
122
- * **parse_time:** support setting of a time_zone ([#31](https://github.com/gildesmarais/html2rss/issues/31)) ([cecbe5e](https://github.com/gildesmarais/html2rss/commit/cecbe5eb7b8586f036169480cd009c8be69b4f22)), closes [#19](https://github.com/gildesmarais/html2rss/issues/19)
123
- * **postprocessor:** add referrer-policy on img tag in sanitze html ([#24](https://github.com/gildesmarais/html2rss/issues/24)) ([a3b1d18](https://github.com/gildesmarais/html2rss/commit/a3b1d18cc0eb4ff9c359d591357ed631e44c8dd8))
124
- * **rubocop:** add rubocop-rspec and (auto-)fix issues ([#22](https://github.com/gildesmarais/html2rss/issues/22)) ([dd539f6](https://github.com/gildesmarais/html2rss/commit/dd539f66fa31a5735090663b0611e8ba56c7c34f))
125
- * **rubocop:** enable more performance cops and relax config ([#21](https://github.com/gildesmarais/html2rss/issues/21)) ([67132bb](https://github.com/gildesmarais/html2rss/commit/67132bba2ac13ca7ed694e965fb8770a1f635de2))
126
- * **sanitize_html:** rewrite relative urls to absolute in a and img elements ([#30](https://github.com/gildesmarais/html2rss/issues/30)) ([caf4e80](https://github.com/gildesmarais/html2rss/commit/caf4e80f342d32ec193868ebeacc5db989947594))
127
- * **sanitze_html:** strip more attributes ([#28](https://github.com/gildesmarais/html2rss/issues/28)) ([9daa42e](https://github.com/gildesmarais/html2rss/commit/9daa42e774850c766299b5d85bf6e98d40cb9f6d)), closes [#26](https://github.com/gildesmarais/html2rss/issues/26)
128
-
129
-
130
-
131
- ## [0.3.3](https://github.com/gildesmarais/html2rss/compare/v0.3.2...v0.3.3) (2019-07-01)
132
-
133
-
134
- ### Features
135
-
136
- * enable usage of multiple post processors ([#17](https://github.com/gildesmarais/html2rss/issues/17)) ([8a9f7b4](https://github.com/gildesmarais/html2rss/commit/8a9f7b439b266c92756d9198c8689cd4ba9813e8))
137
-
138
-
139
-
140
- ## [0.3.2](https://github.com/gildesmarais/html2rss/compare/v0.3.1...v0.3.2) (2019-07-01)
141
-
142
-
143
-
144
- ## [0.3.1](https://github.com/gildesmarais/html2rss/compare/v0.3.0...v0.3.1) (2019-06-23)
145
-
146
-
147
- ### Features
148
-
149
- * handle string and symbol keys in config hashes ([#15](https://github.com/gildesmarais/html2rss/issues/15)) ([93ad824](https://github.com/gildesmarais/html2rss/commit/93ad82488cfb0fc497c443d4b11dc12b8eeb50e2))
150
- * support attributes without selector, fallback to root element then ([#16](https://github.com/gildesmarais/html2rss/issues/16)) ([d99ae3d](https://github.com/gildesmarais/html2rss/commit/d99ae3d3d91ffc0a8549fd0ab6926e136126489b))
151
-
152
-
153
-
154
- # [0.3.0](https://github.com/gildesmarais/html2rss/compare/v0.2.2...v0.3.0) (2019-06-20)
155
-
156
-
157
- ### Features
158
-
159
- * add rubocop and update development deps ([#13](https://github.com/gildesmarais/html2rss/issues/13)) ([6e06329](https://github.com/gildesmarais/html2rss/commit/6e063296d05f5cbe7ee8699e11ae7c812c519814))
160
- * change Config constructor arguments ([#14](https://github.com/gildesmarais/html2rss/issues/14)) ([21f8746](https://github.com/gildesmarais/html2rss/commit/21f8746e74d2a7c74611fb3c4ca24d5505915f73))
161
-
162
-
163
-
164
- ## [0.2.2](https://github.com/gildesmarais/html2rss/compare/v0.2.0...v0.2.2) (2019-01-31)
165
-
166
-
167
- ### Bug Fixes
168
-
169
- * generates invalid feeds ([00309e7](https://github.com/gildesmarais/html2rss/commit/00309e7ba9a35ef0272b72b75c4410c47413a2dc))
170
-
171
-
172
-
173
- # [0.2.0](https://github.com/gildesmarais/html2rss/compare/v0.1.0...v0.2.0) (2018-11-13)
174
-
175
-
176
- ### Features
177
-
178
- * **category:** support item categories ([#10](https://github.com/gildesmarais/html2rss/issues/10)) ([4572bcb](https://github.com/gildesmarais/html2rss/commit/4572bcb33fc73a2d0cfe27afa2ba51310f71780f)), closes [#2](https://github.com/gildesmarais/html2rss/issues/2)
179
-
180
-
181
-
182
- # [0.1.0](https://github.com/gildesmarais/html2rss/compare/v0.0.1...v0.1.0) (2018-11-04)
183
-
184
-
185
- ### Bug Fixes
186
-
187
- * **config:** feed generation fails ([7dd5586](https://github.com/gildesmarais/html2rss/commit/7dd55869f79b1de76c004bf0e82d13b16b5b3f0d))
188
- * **parse_uri:** handle non-absolute paths ([9215025](https://github.com/gildesmarais/html2rss/commit/921502574e4436d65a30e1d34b9b31f238336247))
189
- * handling of url query breaks processing ([ace289e](https://github.com/gildesmarais/html2rss/commit/ace289e911b69cb92433cac6f1ca0403715d8286))
190
- * only set supported attributes on rss item ([dae0d8e](https://github.com/gildesmarais/html2rss/commit/dae0d8e75541e810275e789a23971a61e60a2154))
191
-
192
-
193
- ### Features
194
-
195
- * add logo [skip ci] ([857a55f](https://github.com/gildesmarais/html2rss/commit/857a55fd8c932930d96c47c5abe57f0507356df1))
196
- * require updated to be present ([e1bedae](https://github.com/gildesmarais/html2rss/commit/e1bedaecc91e874fe24e96000612abb9cd11e9fe))
197
- * **item_extractor:** add static and current_time ([25043dc](https://github.com/gildesmarais/html2rss/commit/25043dcbd8f0f4901202f4a2f66b355ac48825a8))
198
- * **item_extractor:** handle absolute urls ([f96be00](https://github.com/gildesmarais/html2rss/commit/f96be00857bdcded02d52dd62ec22b9b52c803ed))
199
- * **item_extractor:** text strips strings ([f598285](https://github.com/gildesmarais/html2rss/commit/f59828593dca663bdbe8699392594e2d18658f8f))
200
- * **post_processing:** add configurable post_processing ([#5](https://github.com/gildesmarais/html2rss/issues/5)) ([4cf6cac](https://github.com/gildesmarais/html2rss/commit/4cf6cacac00bd3c0c53d584ca11274ba24b03ef7)), closes [#1](https://github.com/gildesmarais/html2rss/issues/1)
201
- * **post_processor:** add substring ([6f2a32a](https://github.com/gildesmarais/html2rss/commit/6f2a32a6304ef9956577711173de681daf93f55f))
202
- * **postprocessors:** add Template ([#6](https://github.com/gildesmarais/html2rss/issues/6)) ([f1db542](https://github.com/gildesmarais/html2rss/commit/f1db542e8c1e9e09a066a3cd6c8514a6ca0aa871)), closes [#4](https://github.com/gildesmarais/html2rss/issues/4)
203
- * **sanitize_html:** add target="_blank" to anchors ([975a73b](https://github.com/gildesmarais/html2rss/commit/975a73bfd396ba5942bc0ea80eebd14cc37ad776))
204
- * do not fail on invalid item, just skip it ([3b83d71](https://github.com/gildesmarais/html2rss/commit/3b83d715619abbc33b124de1945d17cb0dc7edb0))
205
-
206
-
207
-
208
- ## [0.0.1](https://github.com/gildesmarais/html2rss/compare/219cac849460eae3262108d886c60b9b08385a3d...v0.0.1) (2018-06-03)
209
-
210
-
211
- ### Bug Fixes
212
-
213
- * gem's version and readme-typos ([eab39d9](https://github.com/gildesmarais/html2rss/commit/eab39d981efda19d4ed66d7427d240b083eb2ae4))
214
-
215
-
216
- ### Features
217
-
218
- * **html2rss:** add initial version of the html2rss gem ([219cac8](https://github.com/gildesmarais/html2rss/commit/219cac849460eae3262108d886c60b9b08385a3d))
219
-
220
-
221
-
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
-
5
- gem 'coveralls', require: false
6
-
7
- # Specify your gem's dependencies in html2rss.gemspec
8
- gemspec
data/Gemfile.lock DELETED
@@ -1,139 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- html2rss (0.9.0)
5
- activesupport (>= 5, < 7)
6
- addressable (~> 2.7)
7
- builder
8
- faraday (~> 1.0)
9
- faraday_middleware
10
- kramdown
11
- mime-types (> 3.0)
12
- nokogiri (>= 1.10, < 2.0)
13
- reverse_markdown (~> 2.0)
14
- sanitize (~> 5.0)
15
- to_regexp
16
- zeitwerk
17
-
18
- GEM
19
- remote: https://rubygems.org/
20
- specs:
21
- activesupport (6.0.3.2)
22
- concurrent-ruby (~> 1.0, >= 1.0.2)
23
- i18n (>= 0.7, < 2)
24
- minitest (~> 5.1)
25
- tzinfo (~> 1.1)
26
- zeitwerk (~> 2.2, >= 2.2.2)
27
- addressable (2.7.0)
28
- public_suffix (>= 2.0.2, < 5.0)
29
- ast (2.4.1)
30
- builder (3.2.4)
31
- byebug (11.1.3)
32
- concurrent-ruby (1.1.6)
33
- coveralls (0.7.2)
34
- multi_json (~> 1.3)
35
- rest-client (= 1.6.7)
36
- simplecov (>= 0.7)
37
- term-ansicolor (= 1.2.2)
38
- thor (= 0.18.1)
39
- crass (1.0.6)
40
- diff-lcs (1.3)
41
- docile (1.3.2)
42
- faraday (1.0.1)
43
- multipart-post (>= 1.2, < 3)
44
- faraday_middleware (1.0.0)
45
- faraday (~> 1.0)
46
- i18n (1.8.3)
47
- concurrent-ruby (~> 1.0)
48
- kramdown (2.2.1)
49
- rexml
50
- mime-types (3.3.1)
51
- mime-types-data (~> 3.2015)
52
- mime-types-data (3.2020.0512)
53
- mini_portile2 (2.4.0)
54
- minitest (5.14.1)
55
- multi_json (1.14.1)
56
- multipart-post (2.1.1)
57
- nokogiri (1.10.9)
58
- mini_portile2 (~> 2.4.0)
59
- nokogumbo (2.0.2)
60
- nokogiri (~> 1.8, >= 1.8.4)
61
- parallel (1.19.2)
62
- parser (2.7.1.3)
63
- ast (~> 2.4.0)
64
- public_suffix (4.0.5)
65
- rainbow (3.0.0)
66
- regexp_parser (1.7.1)
67
- rest-client (1.6.7)
68
- mime-types (>= 1.16)
69
- reverse_markdown (2.0.0)
70
- nokogiri
71
- rexml (3.2.4)
72
- rspec (3.9.0)
73
- rspec-core (~> 3.9.0)
74
- rspec-expectations (~> 3.9.0)
75
- rspec-mocks (~> 3.9.0)
76
- rspec-core (3.9.2)
77
- rspec-support (~> 3.9.3)
78
- rspec-expectations (3.9.2)
79
- diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.9.0)
81
- rspec-mocks (3.9.1)
82
- diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.9.0)
84
- rspec-support (3.9.3)
85
- rubocop (0.85.1)
86
- parallel (~> 1.10)
87
- parser (>= 2.7.0.1)
88
- rainbow (>= 2.2.2, < 4.0)
89
- regexp_parser (>= 1.7)
90
- rexml
91
- rubocop-ast (>= 0.0.3)
92
- ruby-progressbar (~> 1.7)
93
- unicode-display_width (>= 1.4.0, < 2.0)
94
- rubocop-ast (0.0.3)
95
- parser (>= 2.7.0.1)
96
- rubocop-performance (1.6.1)
97
- rubocop (>= 0.71.0)
98
- rubocop-rspec (1.40.0)
99
- rubocop (>= 0.68.1)
100
- ruby-progressbar (1.10.1)
101
- sanitize (5.2.1)
102
- crass (~> 1.0.2)
103
- nokogiri (>= 1.8.0)
104
- nokogumbo (~> 2.0)
105
- simplecov (0.18.5)
106
- docile (~> 1.1)
107
- simplecov-html (~> 0.11)
108
- simplecov-html (0.12.2)
109
- term-ansicolor (1.2.2)
110
- tins (~> 0.8)
111
- thor (0.18.1)
112
- thread_safe (0.3.6)
113
- tins (0.13.2)
114
- to_regexp (0.2.1)
115
- tzinfo (1.2.7)
116
- thread_safe (~> 0.1)
117
- unicode-display_width (1.7.0)
118
- vcr (6.0.0)
119
- yard (0.9.25)
120
- zeitwerk (2.3.0)
121
-
122
- PLATFORMS
123
- ruby
124
-
125
- DEPENDENCIES
126
- bundler
127
- byebug
128
- coveralls
129
- html2rss!
130
- rspec (~> 3.0)
131
- rubocop
132
- rubocop-performance
133
- rubocop-rspec
134
- simplecov
135
- vcr
136
- yard
137
-
138
- BUNDLED WITH
139
- 2.1.4
data/bin/console DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bundler/setup'
4
- require 'html2rss'
5
- require 'byebug'
6
-
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- require 'irb'
15
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,81 +0,0 @@
1
- require 'rss'
2
- require 'mime/types'
3
-
4
- module Html2rss
5
- ##
6
- # The purpose is to build the feed, consisting of
7
- #
8
- # - the 'channel' and
9
- # - the 'item'
10
- #
11
- # parts.
12
- class FeedBuilder
13
- def initialize(config)
14
- @config = config
15
- end
16
-
17
- ##
18
- # @return [RSS:Rss]
19
- def rss
20
- RSS::Maker.make('2.0') do |maker|
21
- add_channel(maker.channel)
22
-
23
- items.each { |item| add_item(item, maker.items.new_item) }
24
- end
25
- end
26
-
27
- def self.add_categories(categories, item_maker)
28
- categories.each { |category| item_maker.categories.new_category.content = category }
29
- end
30
-
31
- def self.add_enclosure_from_url(url, item_maker)
32
- return unless url
33
-
34
- enclosure = item_maker.enclosure
35
- content_type = MIME::Types.type_for(File.extname(url).delete('.'))
36
-
37
- enclosure.type = content_type.any? ? content_type.first.to_s : 'application/octet-stream'
38
- enclosure.length = 0
39
- enclosure.url = url
40
- end
41
-
42
- def self.add_guid(item, item_maker)
43
- guid = item_maker.guid
44
- guid.content = Digest::SHA1.hexdigest(item.title)
45
- guid.isPermaLink = false
46
- end
47
-
48
- private
49
-
50
- attr_reader :config
51
-
52
- def add_channel(channel_maker)
53
- %i[language author title description link ttl].each do |attribute_name|
54
- channel_maker.public_send("#{attribute_name}=", config.public_send(attribute_name))
55
- end
56
-
57
- channel_maker.generator = "html2rss V. #{::Html2rss::VERSION}"
58
- channel_maker.lastBuildDate = Time.now
59
- end
60
-
61
- def items
62
- return @items if defined?(@items)
63
-
64
- items = Item.from_url(config.url, config)
65
-
66
- items.reverse! if config.items_order == :reverse
67
-
68
- @items = items
69
- end
70
-
71
- def add_item(item, item_maker)
72
- item.available_attributes.each do |attribute_name|
73
- item_maker.public_send("#{attribute_name}=", item.public_send(attribute_name))
74
- end
75
-
76
- self.class.add_categories(item.categories, item_maker)
77
- self.class.add_enclosure_from_url(item.enclosure_url, item_maker) if item.enclosure?
78
- self.class.add_guid(item, item_maker)
79
- end
80
- end
81
- end
@@ -1,21 +0,0 @@
1
- module Html2rss
2
- module ItemExtractors
3
- ##
4
- # Returns the current Time.
5
- #
6
- # YAML usage example:
7
- #
8
- # selectors:
9
- # updated:
10
- # extractor: current_time
11
- class CurrentTime
12
- def initialize(_xml, _options); end
13
-
14
- ##
15
- # @return [Time]
16
- def get
17
- Time.new
18
- end
19
- end
20
- end
21
- end
data/support/logo.png DELETED
Binary file