feedjira 2.0.0 → 2.2.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 (90) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +15 -0
  4. data/.travis.yml +31 -12
  5. data/CHANGELOG.md +34 -1
  6. data/Dangerfile +1 -0
  7. data/Gemfile +2 -1
  8. data/LICENSE +1 -1
  9. data/README.md +210 -7
  10. data/Rakefile +11 -1
  11. data/feedjira.gemspec +17 -14
  12. data/fixtures/vcr_cassettes/fetch_failure.yml +62 -0
  13. data/fixtures/vcr_cassettes/parse_error.yml +222 -0
  14. data/fixtures/vcr_cassettes/success.yml +281 -0
  15. data/lib/feedjira/configuration.rb +76 -0
  16. data/lib/feedjira/core_ext/date.rb +3 -1
  17. data/lib/feedjira/core_ext/string.rb +2 -1
  18. data/lib/feedjira/core_ext/time.rb +24 -17
  19. data/lib/feedjira/core_ext.rb +3 -3
  20. data/lib/feedjira/date_time_utilities/date_time_epoch_parser.rb +13 -0
  21. data/lib/feedjira/date_time_utilities/date_time_language_parser.rb +24 -0
  22. data/lib/feedjira/date_time_utilities/date_time_pattern_parser.rb +34 -0
  23. data/lib/feedjira/date_time_utilities.rb +32 -0
  24. data/lib/feedjira/feed.rb +89 -62
  25. data/lib/feedjira/feed_entry_utilities.rb +20 -19
  26. data/lib/feedjira/feed_utilities.rb +37 -22
  27. data/lib/feedjira/parser/atom.rb +10 -8
  28. data/lib/feedjira/parser/atom_entry.rb +11 -13
  29. data/lib/feedjira/parser/atom_feed_burner.rb +27 -10
  30. data/lib/feedjira/parser/atom_feed_burner_entry.rb +12 -14
  31. data/lib/feedjira/parser/atom_youtube.rb +21 -0
  32. data/lib/feedjira/parser/atom_youtube_entry.rb +30 -0
  33. data/lib/feedjira/parser/google_docs_atom.rb +8 -7
  34. data/lib/feedjira/parser/google_docs_atom_entry.rb +13 -11
  35. data/lib/feedjira/parser/itunes_rss.rb +41 -22
  36. data/lib/feedjira/parser/itunes_rss_category.rb +39 -0
  37. data/lib/feedjira/parser/itunes_rss_item.rb +32 -20
  38. data/lib/feedjira/parser/itunes_rss_owner.rb +4 -4
  39. data/lib/feedjira/parser/podlove_chapter.rb +22 -0
  40. data/lib/feedjira/parser/rss.rb +11 -8
  41. data/lib/feedjira/parser/rss_entry.rb +17 -21
  42. data/lib/feedjira/parser/rss_feed_burner.rb +5 -6
  43. data/lib/feedjira/parser/rss_feed_burner_entry.rb +24 -28
  44. data/lib/feedjira/parser/rss_image.rb +15 -0
  45. data/lib/feedjira/parser.rb +1 -1
  46. data/lib/feedjira/preprocessor.rb +4 -2
  47. data/lib/feedjira/version.rb +1 -1
  48. data/lib/feedjira.rb +15 -0
  49. data/spec/feedjira/configuration_spec.rb +25 -0
  50. data/spec/feedjira/date_time_utilities_spec.rb +47 -0
  51. data/spec/feedjira/feed_entry_utilities_spec.rb +23 -19
  52. data/spec/feedjira/feed_spec.rb +140 -75
  53. data/spec/feedjira/feed_utilities_spec.rb +83 -63
  54. data/spec/feedjira/parser/atom_entry_spec.rb +54 -34
  55. data/spec/feedjira/parser/atom_feed_burner_entry_spec.rb +27 -20
  56. data/spec/feedjira/parser/atom_feed_burner_spec.rb +87 -30
  57. data/spec/feedjira/parser/atom_spec.rb +50 -48
  58. data/spec/feedjira/parser/atom_youtube_entry_spec.rb +86 -0
  59. data/spec/feedjira/parser/atom_youtube_spec.rb +43 -0
  60. data/spec/feedjira/parser/google_docs_atom_entry_spec.rb +5 -4
  61. data/spec/feedjira/parser/google_docs_atom_spec.rb +6 -6
  62. data/spec/feedjira/parser/itunes_rss_item_spec.rb +49 -29
  63. data/spec/feedjira/parser/itunes_rss_owner_spec.rb +10 -9
  64. data/spec/feedjira/parser/itunes_rss_spec.rb +87 -30
  65. data/spec/feedjira/parser/podlove_chapter_spec.rb +37 -0
  66. data/spec/feedjira/parser/rss_entry_spec.rb +50 -33
  67. data/spec/feedjira/parser/rss_feed_burner_entry_spec.rb +55 -33
  68. data/spec/feedjira/parser/rss_feed_burner_spec.rb +31 -26
  69. data/spec/feedjira/parser/rss_spec.rb +56 -24
  70. data/spec/feedjira/preprocessor_spec.rb +11 -3
  71. data/spec/sample_feeds/AmazonWebServicesBlog.xml +797 -797
  72. data/spec/sample_feeds/AtomEscapedHTMLInPreTag.xml +13 -0
  73. data/spec/sample_feeds/CRE.xml +5849 -0
  74. data/spec/sample_feeds/FeedBurnerXHTML.xml +400 -400
  75. data/spec/sample_feeds/GiantRobotsSmashingIntoOtherGiantRobots.xml +682 -0
  76. data/spec/sample_feeds/ITunesWithSingleQuotedAttributes.xml +67 -0
  77. data/spec/sample_feeds/InvalidDateFormat.xml +20 -0
  78. data/spec/sample_feeds/PaulDixExplainsNothing.xml +175 -175
  79. data/spec/sample_feeds/PaulDixExplainsNothingAlternate.xml +175 -175
  80. data/spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml +16 -16
  81. data/spec/sample_feeds/PaulDixExplainsNothingWFW.xml +174 -174
  82. data/spec/sample_feeds/TenderLovemaking.xml +12 -2
  83. data/spec/sample_feeds/TrotterCashionHome.xml +611 -611
  84. data/spec/sample_feeds/TypePadNews.xml +368 -368
  85. data/spec/sample_feeds/itunes.xml +31 -2
  86. data/spec/sample_feeds/pet_atom.xml +229 -229
  87. data/spec/sample_feeds/youtube_atom.xml +395 -0
  88. data/spec/sample_feeds.rb +31 -21
  89. data/spec/spec_helper.rb +6 -0
  90. metadata +132 -25
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedjira
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Dix
@@ -11,79 +11,149 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-06-05 00:00:00.000000000 Z
14
+ date: 2018-09-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: sax-machine
17
+ name: faraday
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - "~>"
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '1.0'
22
+ version: '0.9'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '0.9'
30
30
  - !ruby/object:Gem::Dependency
31
- name: faraday
31
+ name: faraday_middleware
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - "~>"
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: '0.9'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - "~>"
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0.9'
44
44
  - !ruby/object:Gem::Dependency
45
- name: faraday_middleware
45
+ name: loofah
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - "~>"
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: '0.9'
50
+ version: '2.0'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - "~>"
55
+ - - ">="
56
56
  - !ruby/object:Gem::Version
57
- version: '0.9'
57
+ version: '2.0'
58
58
  - !ruby/object:Gem::Dependency
59
- name: loofah
59
+ name: sax-machine
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - "~>"
62
+ - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '2.0'
64
+ version: '1.0'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - "~>"
69
+ - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '2.0'
71
+ version: '1.0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: danger
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ - !ruby/object:Gem::Dependency
87
+ name: danger-commit_lint
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
72
100
  - !ruby/object:Gem::Dependency
73
101
  name: rspec
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ - !ruby/object:Gem::Dependency
115
+ name: rubocop
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - '='
119
+ - !ruby/object:Gem::Version
120
+ version: '0.46'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - '='
126
+ - !ruby/object:Gem::Version
127
+ version: '0.46'
128
+ - !ruby/object:Gem::Dependency
129
+ name: vcr
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: yard
74
144
  requirement: !ruby/object:Gem::Requirement
75
145
  requirements:
76
146
  - - "~>"
77
147
  - !ruby/object:Gem::Version
78
- version: '3.0'
148
+ version: '0.9'
79
149
  type: :development
80
150
  prerelease: false
81
151
  version_requirements: !ruby/object:Gem::Requirement
82
152
  requirements:
83
153
  - - "~>"
84
154
  - !ruby/object:Gem::Version
85
- version: '3.0'
86
- description: A library designed to retrieve and parse feeds as quickly as possible
155
+ version: '0.9'
156
+ description:
87
157
  email: feedjira@gmail.com
88
158
  executables: []
89
159
  extensions: []
@@ -91,18 +161,28 @@ extra_rdoc_files: []
91
161
  files:
92
162
  - ".gitignore"
93
163
  - ".rspec"
164
+ - ".rubocop.yml"
94
165
  - ".travis.yml"
95
166
  - CHANGELOG.md
167
+ - Dangerfile
96
168
  - Gemfile
97
169
  - LICENSE
98
170
  - README.md
99
171
  - Rakefile
100
172
  - feedjira.gemspec
173
+ - fixtures/vcr_cassettes/fetch_failure.yml
174
+ - fixtures/vcr_cassettes/parse_error.yml
175
+ - fixtures/vcr_cassettes/success.yml
101
176
  - lib/feedjira.rb
177
+ - lib/feedjira/configuration.rb
102
178
  - lib/feedjira/core_ext.rb
103
179
  - lib/feedjira/core_ext/date.rb
104
180
  - lib/feedjira/core_ext/string.rb
105
181
  - lib/feedjira/core_ext/time.rb
182
+ - lib/feedjira/date_time_utilities.rb
183
+ - lib/feedjira/date_time_utilities/date_time_epoch_parser.rb
184
+ - lib/feedjira/date_time_utilities/date_time_language_parser.rb
185
+ - lib/feedjira/date_time_utilities/date_time_pattern_parser.rb
106
186
  - lib/feedjira/feed.rb
107
187
  - lib/feedjira/feed_entry_utilities.rb
108
188
  - lib/feedjira/feed_utilities.rb
@@ -111,17 +191,24 @@ files:
111
191
  - lib/feedjira/parser/atom_entry.rb
112
192
  - lib/feedjira/parser/atom_feed_burner.rb
113
193
  - lib/feedjira/parser/atom_feed_burner_entry.rb
194
+ - lib/feedjira/parser/atom_youtube.rb
195
+ - lib/feedjira/parser/atom_youtube_entry.rb
114
196
  - lib/feedjira/parser/google_docs_atom.rb
115
197
  - lib/feedjira/parser/google_docs_atom_entry.rb
116
198
  - lib/feedjira/parser/itunes_rss.rb
199
+ - lib/feedjira/parser/itunes_rss_category.rb
117
200
  - lib/feedjira/parser/itunes_rss_item.rb
118
201
  - lib/feedjira/parser/itunes_rss_owner.rb
202
+ - lib/feedjira/parser/podlove_chapter.rb
119
203
  - lib/feedjira/parser/rss.rb
120
204
  - lib/feedjira/parser/rss_entry.rb
121
205
  - lib/feedjira/parser/rss_feed_burner.rb
122
206
  - lib/feedjira/parser/rss_feed_burner_entry.rb
207
+ - lib/feedjira/parser/rss_image.rb
123
208
  - lib/feedjira/preprocessor.rb
124
209
  - lib/feedjira/version.rb
210
+ - spec/feedjira/configuration_spec.rb
211
+ - spec/feedjira/date_time_utilities_spec.rb
125
212
  - spec/feedjira/feed_entry_utilities_spec.rb
126
213
  - spec/feedjira/feed_spec.rb
127
214
  - spec/feedjira/feed_utilities_spec.rb
@@ -129,11 +216,14 @@ files:
129
216
  - spec/feedjira/parser/atom_feed_burner_entry_spec.rb
130
217
  - spec/feedjira/parser/atom_feed_burner_spec.rb
131
218
  - spec/feedjira/parser/atom_spec.rb
219
+ - spec/feedjira/parser/atom_youtube_entry_spec.rb
220
+ - spec/feedjira/parser/atom_youtube_spec.rb
132
221
  - spec/feedjira/parser/google_docs_atom_entry_spec.rb
133
222
  - spec/feedjira/parser/google_docs_atom_spec.rb
134
223
  - spec/feedjira/parser/itunes_rss_item_spec.rb
135
224
  - spec/feedjira/parser/itunes_rss_owner_spec.rb
136
225
  - spec/feedjira/parser/itunes_rss_spec.rb
226
+ - spec/feedjira/parser/podlove_chapter_spec.rb
137
227
  - spec/feedjira/parser/rss_entry_spec.rb
138
228
  - spec/feedjira/parser/rss_feed_burner_entry_spec.rb
139
229
  - spec/feedjira/parser/rss_feed_burner_spec.rb
@@ -142,15 +232,20 @@ files:
142
232
  - spec/sample_feeds.rb
143
233
  - spec/sample_feeds/AmazonWebServicesBlog.xml
144
234
  - spec/sample_feeds/AmazonWebServicesBlogFirstEntryContent.xml
235
+ - spec/sample_feeds/AtomEscapedHTMLInPreTag.xml
145
236
  - spec/sample_feeds/AtomFeedWithSpacesAroundEquals.xml
237
+ - spec/sample_feeds/CRE.xml
146
238
  - spec/sample_feeds/DuplicateContentAtomFeed.xml
147
239
  - spec/sample_feeds/FeedBurnerUrlNoAlternate.xml
148
240
  - spec/sample_feeds/FeedBurnerXHTML.xml
149
241
  - spec/sample_feeds/FeedjiraBlog.xml
242
+ - spec/sample_feeds/GiantRobotsSmashingIntoOtherGiantRobots.xml
150
243
  - spec/sample_feeds/GoogleDocsList.xml
151
244
  - spec/sample_feeds/HREFConsideredHarmful.xml
152
245
  - spec/sample_feeds/HREFConsideredHarmfulFirstEntry.xml
246
+ - spec/sample_feeds/ITunesWithSingleQuotedAttributes.xml
153
247
  - spec/sample_feeds/ITunesWithSpacesInAttributes.xml
248
+ - spec/sample_feeds/InvalidDateFormat.xml
154
249
  - spec/sample_feeds/PaulDixExplainsNothing.xml
155
250
  - spec/sample_feeds/PaulDixExplainsNothingAlternate.xml
156
251
  - spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
@@ -166,6 +261,7 @@ files:
166
261
  - spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
167
262
  - spec/sample_feeds/itunes.xml
168
263
  - spec/sample_feeds/pet_atom.xml
264
+ - spec/sample_feeds/youtube_atom.xml
169
265
  - spec/spec_helper.rb
170
266
  homepage: http://feedjira.com
171
267
  licenses:
@@ -179,7 +275,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
275
  requirements:
180
276
  - - ">="
181
277
  - !ruby/object:Gem::Version
182
- version: '0'
278
+ version: 1.9.3
183
279
  required_rubygems_version: !ruby/object:Gem::Requirement
184
280
  requirements:
185
281
  - - ">="
@@ -187,11 +283,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
283
  version: '0'
188
284
  requirements: []
189
285
  rubyforge_project:
190
- rubygems_version: 2.4.6
286
+ rubygems_version: 2.7.6
191
287
  signing_key:
192
288
  specification_version: 4
193
289
  summary: A feed fetching and parsing library
194
290
  test_files:
291
+ - spec/feedjira/configuration_spec.rb
292
+ - spec/feedjira/date_time_utilities_spec.rb
195
293
  - spec/feedjira/feed_entry_utilities_spec.rb
196
294
  - spec/feedjira/feed_spec.rb
197
295
  - spec/feedjira/feed_utilities_spec.rb
@@ -199,11 +297,14 @@ test_files:
199
297
  - spec/feedjira/parser/atom_feed_burner_entry_spec.rb
200
298
  - spec/feedjira/parser/atom_feed_burner_spec.rb
201
299
  - spec/feedjira/parser/atom_spec.rb
300
+ - spec/feedjira/parser/atom_youtube_entry_spec.rb
301
+ - spec/feedjira/parser/atom_youtube_spec.rb
202
302
  - spec/feedjira/parser/google_docs_atom_entry_spec.rb
203
303
  - spec/feedjira/parser/google_docs_atom_spec.rb
204
304
  - spec/feedjira/parser/itunes_rss_item_spec.rb
205
305
  - spec/feedjira/parser/itunes_rss_owner_spec.rb
206
306
  - spec/feedjira/parser/itunes_rss_spec.rb
307
+ - spec/feedjira/parser/podlove_chapter_spec.rb
207
308
  - spec/feedjira/parser/rss_entry_spec.rb
208
309
  - spec/feedjira/parser/rss_feed_burner_entry_spec.rb
209
310
  - spec/feedjira/parser/rss_feed_burner_spec.rb
@@ -212,15 +313,20 @@ test_files:
212
313
  - spec/sample_feeds.rb
213
314
  - spec/sample_feeds/AmazonWebServicesBlog.xml
214
315
  - spec/sample_feeds/AmazonWebServicesBlogFirstEntryContent.xml
316
+ - spec/sample_feeds/AtomEscapedHTMLInPreTag.xml
215
317
  - spec/sample_feeds/AtomFeedWithSpacesAroundEquals.xml
318
+ - spec/sample_feeds/CRE.xml
216
319
  - spec/sample_feeds/DuplicateContentAtomFeed.xml
217
320
  - spec/sample_feeds/FeedBurnerUrlNoAlternate.xml
218
321
  - spec/sample_feeds/FeedBurnerXHTML.xml
219
322
  - spec/sample_feeds/FeedjiraBlog.xml
323
+ - spec/sample_feeds/GiantRobotsSmashingIntoOtherGiantRobots.xml
220
324
  - spec/sample_feeds/GoogleDocsList.xml
221
325
  - spec/sample_feeds/HREFConsideredHarmful.xml
222
326
  - spec/sample_feeds/HREFConsideredHarmfulFirstEntry.xml
327
+ - spec/sample_feeds/ITunesWithSingleQuotedAttributes.xml
223
328
  - spec/sample_feeds/ITunesWithSpacesInAttributes.xml
329
+ - spec/sample_feeds/InvalidDateFormat.xml
224
330
  - spec/sample_feeds/PaulDixExplainsNothing.xml
225
331
  - spec/sample_feeds/PaulDixExplainsNothingAlternate.xml
226
332
  - spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
@@ -236,4 +342,5 @@ test_files:
236
342
  - spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
237
343
  - spec/sample_feeds/itunes.xml
238
344
  - spec/sample_feeds/pet_atom.xml
345
+ - spec/sample_feeds/youtube_atom.xml
239
346
  - spec/spec_helper.rb