codders-feedzirra 0.2.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/.gitignore +12 -0
  2. data/.rspec +1 -0
  3. data/.travis.yml +9 -0
  4. data/Gemfile +10 -0
  5. data/Guardfile +6 -0
  6. data/HISTORY.md +25 -0
  7. data/README.md +179 -0
  8. data/Rakefile +6 -0
  9. data/feedzirra.gemspec +28 -0
  10. data/lib/feedzirra.rb +17 -0
  11. data/lib/feedzirra/core_ext.rb +3 -0
  12. data/lib/feedzirra/core_ext/date.rb +19 -0
  13. data/lib/feedzirra/core_ext/string.rb +9 -0
  14. data/lib/feedzirra/core_ext/time.rb +29 -0
  15. data/lib/feedzirra/feed.rb +382 -0
  16. data/lib/feedzirra/feed_entry_utilities.rb +65 -0
  17. data/lib/feedzirra/feed_utilities.rb +72 -0
  18. data/lib/feedzirra/parser.rb +20 -0
  19. data/lib/feedzirra/parser/atom.rb +29 -0
  20. data/lib/feedzirra/parser/atom_entry.rb +30 -0
  21. data/lib/feedzirra/parser/atom_feed_burner.rb +21 -0
  22. data/lib/feedzirra/parser/atom_feed_burner_entry.rb +31 -0
  23. data/lib/feedzirra/parser/google_docs_atom.rb +28 -0
  24. data/lib/feedzirra/parser/google_docs_atom_entry.rb +29 -0
  25. data/lib/feedzirra/parser/itunes_rss.rb +50 -0
  26. data/lib/feedzirra/parser/itunes_rss_item.rb +32 -0
  27. data/lib/feedzirra/parser/itunes_rss_owner.rb +12 -0
  28. data/lib/feedzirra/parser/rss.rb +22 -0
  29. data/lib/feedzirra/parser/rss_entry.rb +34 -0
  30. data/lib/feedzirra/parser/rss_feed_burner.rb +22 -0
  31. data/lib/feedzirra/parser/rss_feed_burner_entry.rb +40 -0
  32. data/lib/feedzirra/version.rb +3 -0
  33. data/spec/benchmarks/feed_benchmarks.rb +98 -0
  34. data/spec/benchmarks/feedzirra_benchmarks.rb +40 -0
  35. data/spec/benchmarks/fetching_benchmarks.rb +28 -0
  36. data/spec/benchmarks/parsing_benchmark.rb +30 -0
  37. data/spec/benchmarks/updating_benchmarks.rb +33 -0
  38. data/spec/feedzirra/feed_entry_utilities_spec.rb +52 -0
  39. data/spec/feedzirra/feed_spec.rb +599 -0
  40. data/spec/feedzirra/feed_utilities_spec.rb +150 -0
  41. data/spec/feedzirra/parser/atom_entry_spec.rb +86 -0
  42. data/spec/feedzirra/parser/atom_feed_burner_entry_spec.rb +47 -0
  43. data/spec/feedzirra/parser/atom_feed_burner_spec.rb +47 -0
  44. data/spec/feedzirra/parser/atom_spec.rb +51 -0
  45. data/spec/feedzirra/parser/google_docs_atom_entry_spec.rb +22 -0
  46. data/spec/feedzirra/parser/google_docs_atom_spec.rb +31 -0
  47. data/spec/feedzirra/parser/itunes_rss_item_spec.rb +48 -0
  48. data/spec/feedzirra/parser/itunes_rss_owner_spec.rb +18 -0
  49. data/spec/feedzirra/parser/itunes_rss_spec.rb +54 -0
  50. data/spec/feedzirra/parser/rss_entry_spec.rb +85 -0
  51. data/spec/feedzirra/parser/rss_feed_burner_entry_spec.rb +85 -0
  52. data/spec/feedzirra/parser/rss_feed_burner_spec.rb +52 -0
  53. data/spec/feedzirra/parser/rss_spec.rb +49 -0
  54. data/spec/sample_feeds/AmazonWebServicesBlog.xml +796 -0
  55. data/spec/sample_feeds/AmazonWebServicesBlogFirstEntryContent.xml +63 -0
  56. data/spec/sample_feeds/FeedBurnerUrlNoAlternate.xml +27 -0
  57. data/spec/sample_feeds/GoogleDocsList.xml +187 -0
  58. data/spec/sample_feeds/HREFConsideredHarmful.xml +313 -0
  59. data/spec/sample_feeds/HREFConsideredHarmfulFirstEntry.xml +22 -0
  60. data/spec/sample_feeds/PaulDixExplainsNothing.xml +174 -0
  61. data/spec/sample_feeds/PaulDixExplainsNothingAlternate.xml +174 -0
  62. data/spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml +19 -0
  63. data/spec/sample_feeds/PaulDixExplainsNothingWFW.xml +174 -0
  64. data/spec/sample_feeds/TechCrunch.xml +1514 -0
  65. data/spec/sample_feeds/TechCrunchFirstEntry.xml +9 -0
  66. data/spec/sample_feeds/TechCrunchFirstEntryDescription.xml +3 -0
  67. data/spec/sample_feeds/TenderLovemaking.xml +515 -0
  68. data/spec/sample_feeds/TenderLovemakingFirstEntry.xml +66 -0
  69. data/spec/sample_feeds/TrotterCashionHome.xml +610 -0
  70. data/spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml +30 -0
  71. data/spec/sample_feeds/itunes.xml +60 -0
  72. data/spec/sample_feeds/run_against_sample.rb +20 -0
  73. data/spec/sample_feeds/top5kfeeds.dat +2170 -0
  74. data/spec/sample_feeds/trouble_feeds.txt +16 -0
  75. data/spec/spec_helper.rb +75 -0
  76. metadata +203 -0
@@ -0,0 +1,16 @@
1
+ http://www.forbes.com/news/index.xml
2
+ http://www.qarchive.org/feeds/lastreviews.rss
3
+ http://medallia.com/medallia/feeds/rss/full/
4
+ http://www.ecampus.com/rss/
5
+ http://bossip.com/feed/
6
+ http://www.christianpost.com.com/rss/feed.xml
7
+ http://fusion.google.com/add?feedurl=http://feeds.feedburner.com/product-reviews
8
+ http://octanetv.com/episodes.rss
9
+ http://octanetv.com/piclens.rss
10
+ http://sk8rstv.com/rss/
11
+ http://www.sho.com/site/rss/schedule.do?schedule=primetime
12
+ http://www.plaxo.com/rss
13
+ http://emedtv.com/feed.rss
14
+ http://www.bankrate.com/brm/rss/entrypage1.asp
15
+ http://podcasts.odiogo.com/thats-phucked/podcasts-html.php
16
+ http://gallup.com/sitemaps/university.rss
@@ -0,0 +1,75 @@
1
+ begin
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter "/spec/"
5
+ end
6
+ rescue LoadError
7
+ end
8
+
9
+ require File.expand_path(File.dirname(__FILE__) + '/../lib/feedzirra')
10
+
11
+ def load_sample(filename)
12
+ File.read("#{File.dirname(__FILE__)}/sample_feeds/#{filename}")
13
+ end
14
+
15
+ def sample_atom_feed
16
+ load_sample("AmazonWebServicesBlog.xml")
17
+ end
18
+
19
+ def sample_atom_entry_content
20
+ load_sample("AmazonWebServicesBlogFirstEntryContent.xml")
21
+ end
22
+
23
+ def sample_itunes_feed
24
+ load_sample("itunes.xml")
25
+ end
26
+
27
+ def sample_rdf_feed
28
+ load_sample("HREFConsideredHarmful.xml")
29
+ end
30
+
31
+ def sample_rdf_entry_content
32
+ load_sample("HREFConsideredHarmfulFirstEntry.xml")
33
+ end
34
+
35
+ def sample_rss_feed_burner_feed
36
+ load_sample("TechCrunch.xml")
37
+ end
38
+
39
+ def sample_rss_feed_burner_entry_content
40
+ load_sample("TechCrunchFirstEntry.xml")
41
+ end
42
+
43
+ def sample_rss_feed_burner_entry_description
44
+ load_sample("TechCrunchFirstEntryDescription.xml")
45
+ end
46
+
47
+ def sample_rss_feed
48
+ load_sample("TenderLovemaking.xml")
49
+ end
50
+
51
+ def sample_rss_entry_content
52
+ load_sample("TenderLovemakingFirstEntry.xml")
53
+ end
54
+
55
+ def sample_feedburner_atom_feed
56
+ load_sample("PaulDixExplainsNothing.xml")
57
+ end
58
+
59
+ def sample_feedburner_atom_entry_content
60
+ load_sample("PaulDixExplainsNothingFirstEntryContent.xml")
61
+ end
62
+
63
+ def sample_wfw_feed
64
+ load_sample("PaulDixExplainsNothingWFW.xml")
65
+ end
66
+
67
+ def sample_google_docs_list_feed
68
+ load_sample("GoogleDocsList.xml")
69
+ end
70
+
71
+ RSpec.configure do |config|
72
+ config.treat_symbols_as_metadata_keys_with_true_values = true
73
+ config.run_all_when_everything_filtered = true
74
+ config.filter_run :focus
75
+ end
metadata ADDED
@@ -0,0 +1,203 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: codders-feedzirra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0.rc2
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Paul Dix
9
+ - Julien Kirch
10
+ - Ezekiel Templin
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2012-10-24 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: nokogiri
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 1.5.3
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ~>
30
+ - !ruby/object:Gem::Version
31
+ version: 1.5.3
32
+ - !ruby/object:Gem::Dependency
33
+ name: sax-machine
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: 0.2.0.rc1
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.0.rc1
48
+ - !ruby/object:Gem::Dependency
49
+ name: codders-curb
50
+ requirement: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 0.8.0
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ~>
62
+ - !ruby/object:Gem::Version
63
+ version: 0.8.0
64
+ - !ruby/object:Gem::Dependency
65
+ name: loofah
66
+ requirement: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: 1.2.1
72
+ type: :runtime
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: 1.2.1
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec
82
+ requirement: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 2.10.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 2.10.0
96
+ description: ! 'A feed fetching and parsing library that treats the internet like
97
+ Godzilla treats Japan: it dominates and eats all.'
98
+ email: feedzirra@googlegroups.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - .gitignore
104
+ - .rspec
105
+ - .travis.yml
106
+ - Gemfile
107
+ - Guardfile
108
+ - HISTORY.md
109
+ - README.md
110
+ - Rakefile
111
+ - feedzirra.gemspec
112
+ - lib/feedzirra.rb
113
+ - lib/feedzirra/core_ext.rb
114
+ - lib/feedzirra/core_ext/date.rb
115
+ - lib/feedzirra/core_ext/string.rb
116
+ - lib/feedzirra/core_ext/time.rb
117
+ - lib/feedzirra/feed.rb
118
+ - lib/feedzirra/feed_entry_utilities.rb
119
+ - lib/feedzirra/feed_utilities.rb
120
+ - lib/feedzirra/parser.rb
121
+ - lib/feedzirra/parser/atom.rb
122
+ - lib/feedzirra/parser/atom_entry.rb
123
+ - lib/feedzirra/parser/atom_feed_burner.rb
124
+ - lib/feedzirra/parser/atom_feed_burner_entry.rb
125
+ - lib/feedzirra/parser/google_docs_atom.rb
126
+ - lib/feedzirra/parser/google_docs_atom_entry.rb
127
+ - lib/feedzirra/parser/itunes_rss.rb
128
+ - lib/feedzirra/parser/itunes_rss_item.rb
129
+ - lib/feedzirra/parser/itunes_rss_owner.rb
130
+ - lib/feedzirra/parser/rss.rb
131
+ - lib/feedzirra/parser/rss_entry.rb
132
+ - lib/feedzirra/parser/rss_feed_burner.rb
133
+ - lib/feedzirra/parser/rss_feed_burner_entry.rb
134
+ - lib/feedzirra/version.rb
135
+ - spec/benchmarks/feed_benchmarks.rb
136
+ - spec/benchmarks/feedzirra_benchmarks.rb
137
+ - spec/benchmarks/fetching_benchmarks.rb
138
+ - spec/benchmarks/parsing_benchmark.rb
139
+ - spec/benchmarks/updating_benchmarks.rb
140
+ - spec/feedzirra/feed_entry_utilities_spec.rb
141
+ - spec/feedzirra/feed_spec.rb
142
+ - spec/feedzirra/feed_utilities_spec.rb
143
+ - spec/feedzirra/parser/atom_entry_spec.rb
144
+ - spec/feedzirra/parser/atom_feed_burner_entry_spec.rb
145
+ - spec/feedzirra/parser/atom_feed_burner_spec.rb
146
+ - spec/feedzirra/parser/atom_spec.rb
147
+ - spec/feedzirra/parser/google_docs_atom_entry_spec.rb
148
+ - spec/feedzirra/parser/google_docs_atom_spec.rb
149
+ - spec/feedzirra/parser/itunes_rss_item_spec.rb
150
+ - spec/feedzirra/parser/itunes_rss_owner_spec.rb
151
+ - spec/feedzirra/parser/itunes_rss_spec.rb
152
+ - spec/feedzirra/parser/rss_entry_spec.rb
153
+ - spec/feedzirra/parser/rss_feed_burner_entry_spec.rb
154
+ - spec/feedzirra/parser/rss_feed_burner_spec.rb
155
+ - spec/feedzirra/parser/rss_spec.rb
156
+ - spec/sample_feeds/AmazonWebServicesBlog.xml
157
+ - spec/sample_feeds/AmazonWebServicesBlogFirstEntryContent.xml
158
+ - spec/sample_feeds/FeedBurnerUrlNoAlternate.xml
159
+ - spec/sample_feeds/GoogleDocsList.xml
160
+ - spec/sample_feeds/HREFConsideredHarmful.xml
161
+ - spec/sample_feeds/HREFConsideredHarmfulFirstEntry.xml
162
+ - spec/sample_feeds/PaulDixExplainsNothing.xml
163
+ - spec/sample_feeds/PaulDixExplainsNothingAlternate.xml
164
+ - spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
165
+ - spec/sample_feeds/PaulDixExplainsNothingWFW.xml
166
+ - spec/sample_feeds/TechCrunch.xml
167
+ - spec/sample_feeds/TechCrunchFirstEntry.xml
168
+ - spec/sample_feeds/TechCrunchFirstEntryDescription.xml
169
+ - spec/sample_feeds/TenderLovemaking.xml
170
+ - spec/sample_feeds/TenderLovemakingFirstEntry.xml
171
+ - spec/sample_feeds/TrotterCashionHome.xml
172
+ - spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
173
+ - spec/sample_feeds/itunes.xml
174
+ - spec/sample_feeds/run_against_sample.rb
175
+ - spec/sample_feeds/top5kfeeds.dat
176
+ - spec/sample_feeds/trouble_feeds.txt
177
+ - spec/spec_helper.rb
178
+ homepage: http://github.com/codders/feedzirra
179
+ licenses: []
180
+ post_install_message:
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ! '>'
194
+ - !ruby/object:Gem::Version
195
+ version: 1.3.1
196
+ requirements: []
197
+ rubyforge_project:
198
+ rubygems_version: 1.8.24
199
+ signing_key:
200
+ specification_version: 3
201
+ summary: A feed fetching and parsing library
202
+ test_files: []
203
+ has_rdoc: