feedjira 2.0.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -7,22 +7,43 @@
7
7
  <link>http://www.example.com/podcasts/everything/index.html</link>
8
8
  <language>en-us</language>
9
9
  <copyright>&#x2117; &amp; &#xA9; 2005 John Doe &amp; Family</copyright>
10
+ <lastBuildDate>Sat, 07 Sep 2002 09:42:31 GMT</lastBuildDate>
11
+ <ttl>60</ttl>
12
+ <itunes:type>episodic</itunes:type>
10
13
  <itunes:subtitle>A show about everything</itunes:subtitle>
11
14
  <itunes:new-feed-url>http://example.com/new.xml</itunes:new-feed-url>
12
15
  <itunes:author>John Doe</itunes:author>
13
16
  <itunes:summary>All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our Podcast in the iTunes Music Store</itunes:summary>
17
+ <description>All About Everything is a show about everything.</description>
14
18
  <description>All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our Podcast in the iTunes Music Store</description>
19
+ <itunes:complete>yes</itunes:complete>
15
20
  <itunes:owner>
16
21
  <itunes:name>John Doe</itunes:name>
17
22
  <itunes:email>john.doe@example.com</itunes:email>
18
23
  </itunes:owner>
19
24
  <itunes:image href="http://example.com/podcasts/everything/AllAboutEverything.jpg" />
25
+ <image>
26
+ <url>http://example.com/podcasts/everything/AllAboutEverything.jpg</url>
27
+ <title>All About Everything</title>
28
+ <link>http://www.example.com/podcasts/everything/index.html</link>
29
+ <width>88</width>
30
+ <height>31</height>
31
+ <description>All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our Podcast in the iTunes Music Store</description>
32
+ </image>
20
33
  <itunes:category text="Technology">
21
- <itunes:category text="Gadgets"/>
34
+ <itunes:category text="Gadgets"/>
35
+ </itunes:category>
22
36
  <itunes:category text="TV &amp; Film"/>
23
-
37
+ <itunes:category text="Arts">
38
+ <itunes:category text="Design"/>
39
+ <itunes:category text="Food"/>
40
+ </itunes:category>
24
41
  <item>
25
42
  <title>Shake Shake Shake Your Spices</title>
43
+ <itunes:title>Shake Shake Shake Your Spices</itunes:title>
44
+ <itunes:episodeType>full</itunes:episodeType>
45
+ <itunes:season>1</itunes:season>
46
+ <itunes:episode>3</itunes:episode>
26
47
  <itunes:author>John Doe</itunes:author>
27
48
  <itunes:subtitle>A short primer on table spices</itunes:subtitle>
28
49
  <itunes:summary>This week we talk about salt and pepper shakers, comparing and contrasting pour rates, construction materials, and overall aesthetics. Come and join the party!</itunes:summary>
@@ -39,6 +60,10 @@
39
60
 
40
61
  <item>
41
62
  <title>Socket Wrench Shootout</title>
63
+ <itunes:title>Socket Wrench Shootout</itunes:title>
64
+ <itunes:episodeType>full</itunes:episodeType>
65
+ <itunes:season>1</itunes:season>
66
+ <itunes:episode>2</itunes:episode>
42
67
  <itunes:author>Jane Doe</itunes:author>
43
68
  <itunes:subtitle>Comparing socket wrenches is fun!</itunes:subtitle>
44
69
  <itunes:summary>This week we talk about metric vs. old english socket wrenches. Which one is better? Do you really need both? Get all of your answers here.</itunes:summary>
@@ -52,6 +77,10 @@
52
77
 
53
78
  <item>
54
79
  <title>Red, Whine, &amp; Blue</title>
80
+ <itunes:title>Red, Whine, &amp; Blue</itunes:title>
81
+ <itunes:episodeType>full</itunes:episodeType>
82
+ <itunes:season>1</itunes:season>
83
+ <itunes:episode>1</itunes:episode>
55
84
  <itunes:author>Various</itunes:author>
56
85
  <itunes:subtitle>Red + Blue != Purple</itunes:subtitle>
57
86
  <itunes:summary>This week we talk about surviving in a Red state if you are a Blue person. Or vice versa.</itunes:summary>