feedzirra 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,19 +32,24 @@ gem install pauldix-feedzirra
32
32
  <b>NOTE:</b>Some people have been reporting a few issues related to installation. First, the Ruby Forge version of curb is not what you want. It will not work. Nor will the curl-multi gem that lives on Ruby Forge. You have to get the "taf2-curb":http://github.com/taf2/curb/tree/master fork installed.
33
33
 
34
34
  If you see this error when doing a require:
35
+
35
36
  <pre>
36
37
  /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- curb_core (LoadError)
37
38
  </pre>
39
+
38
40
  It means that the taf2-curb gem didn't build correctly. To resolve this you can do a git clone git://github.com/taf2/curb.git then run rake gem in the curb directory, then sudo gem install pkg/curb-0.2.4.0.gem. After that you should be good.
39
41
 
40
42
  If you see something like this when trying to run it:
43
+
41
44
  <pre>
42
45
  NoMethodError: undefined method `on_success' for #<Curl::Easy:0x1182724>
43
46
  from ./lib/feedzirra/feed.rb:88:in `add_url_to_multi'
44
47
  </pre>
48
+
45
49
  This means that you are requiring curl-multi or the Ruby Forge version of Curb somewhere. You can't use those and need to get the taf2 version up and running.
46
50
 
47
51
  If you're on Debian or Ubuntu and getting errors while trying to install the taf2-curb gem, it could be because you don't have the latest version of libcurl installed. Do this to fix:
52
+
48
53
  <pre>
49
54
  sudo apt-get install libcurl4-gnutls-dev
50
55
  </pre>
@@ -56,6 +61,8 @@ If you're still having issues, please let me know on the mailing list. Also, "To
56
61
  h2. Usage
57
62
 
58
63
  "A gist of the following code":http://gist.github.com/57285
64
+ "A gist of how to do updates on feeds":http://gist.github.com/132671
65
+
59
66
  <pre>
60
67
  require 'feedzirra'
61
68
 
@@ -135,18 +142,23 @@ Feedzirra::Feed.fetch_and_parse(some_url, :http_authentication => ["myusername",
135
142
  h2. Benchmarks
136
143
 
137
144
  One of the goals of Feedzirra is speed. This includes not only parsing, but fetching multiple feeds as quickly as possible. I ran a benchmark getting 20 feeds 10 times using Feedzirra, rFeedParser, and FeedNormalizer. For more details the "benchmark code can be found in the project in spec/benchmarks/feedzirra_benchmarks.rb":http://github.com/pauldix/feedzirra/blob/7fb5634c5c16e9c6ec971767b462c6518cd55f5d/spec/benchmarks/feedzirra_benchmarks.rb
145
+
138
146
  <pre>
139
147
  feedzirra 5.170000 1.290000 6.460000 ( 18.917796)
140
148
  rfeedparser 104.260000 12.220000 116.480000 (244.799063)
141
149
  feed-normalizer 66.250000 4.010000 70.260000 (191.589862)
142
150
  </pre>
151
+
143
152
  The result of that benchmark is a bit sketchy because of the network variability. Running 10 times against the same 20 feeds was meant to smooth some of that out. However, there is also a "benchmark comparing parsing speed in spec/benchmarks/parsing_benchmark.rb":http://github.com/pauldix/feedzirra/blob/7fb5634c5c16e9c6ec971767b462c6518cd55f5d/spec/benchmarks/parsing_benchmark.rb on an atom feed.
153
+
144
154
  <pre>
145
155
  feedzirra 0.500000 0.030000 0.530000 ( 0.658744)
146
156
  rfeedparser 8.400000 1.110000 9.510000 ( 11.839827)
147
157
  feed-normalizer 5.980000 0.160000 6.140000 ( 7.576140)
148
158
  </pre>
159
+
149
160
  There's also a "benchmark that shows the results of using Feedzirra to perform updates on feeds":http://github.com/pauldix/feedzirra/blob/45d64319544c61a4c9eb9f7f825c73b9f9030cb3/spec/benchmarks/updating_benchmarks.rb you've already pulled in. I tested against 179 feeds. The first is the initial pull and the second is an update 65 seconds later. I'm not sure how many of them support etag and last-modified, so performance may be better or worse depending on what feeds you're requesting.
161
+
150
162
  <pre>
151
163
  feedzirra fetch and parse 4.010000 0.710000 4.720000 ( 15.110101)
152
164
  feedzirra update 0.660000 0.280000 0.940000 ( 5.152709)
@@ -8,7 +8,10 @@ require 'uri'
8
8
 
9
9
  require 'active_support/version'
10
10
  require 'active_support/basic_object'
11
+ require 'active_support/core_ext/module'
12
+ require 'active_support/core_ext/kernel'
11
13
  require 'active_support/core_ext/object'
14
+
12
15
  if ActiveSupport::VERSION::MAJOR >= 3
13
16
  require 'active_support/time'
14
17
  else
@@ -34,5 +37,5 @@ require 'feedzirra/parser/atom'
34
37
  require 'feedzirra/parser/atom_feed_burner'
35
38
 
36
39
  module Feedzirra
37
- VERSION = "0.0.23"
40
+ VERSION = "0.0.24"
38
41
  end
@@ -235,7 +235,7 @@ describe Feedzirra::Feed do
235
235
 
236
236
  describe "#add_url_to_multi" do
237
237
  before(:each) do
238
- @multi = Curl::Multi.new(@paul_feed[:url])
238
+ @multi = Curl::Multi.new
239
239
  @multi.stub!(:add)
240
240
  @easy_curl = Curl::Easy.new(@paul_feed[:url])
241
241
 
@@ -377,7 +377,7 @@ describe Feedzirra::Feed do
377
377
 
378
378
  describe "#add_feed_to_multi" do
379
379
  before(:each) do
380
- @multi = Curl::Multi.new(@paul_feed[:url])
380
+ @multi = Curl::Multi.new
381
381
  @multi.stub!(:add)
382
382
  @easy_curl = Curl::Easy.new(@paul_feed[:url])
383
383
  @feed = Feedzirra::Feed.parse(sample_feedburner_atom_feed)
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedzirra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 24
9
+ version: 0.0.24
5
10
  platform: ruby
6
11
  authors:
7
12
  - Paul Dix
@@ -14,64 +19,112 @@ default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: nokogiri
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">"
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 0
30
+ - 0
23
31
  version: 0.0.0
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: sax-machine
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 0
44
+ - 12
33
45
  version: 0.0.12
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: curb
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
57
+ - 2
58
+ - 3
43
59
  version: 0.2.3
44
- version:
60
+ type: :runtime
61
+ version_requirements: *id003
45
62
  - !ruby/object:Gem::Dependency
46
63
  name: builder
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
50
66
  requirements:
51
67
  - - ">="
52
68
  - !ruby/object:Gem::Version
69
+ segments:
70
+ - 2
71
+ - 1
72
+ - 2
53
73
  version: 2.1.2
54
- version:
74
+ type: :runtime
75
+ version_requirements: *id004
55
76
  - !ruby/object:Gem::Dependency
56
77
  name: activesupport
57
- type: :runtime
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
60
80
  requirements:
61
81
  - - ">="
62
82
  - !ruby/object:Gem::Version
63
- version: 2.0.0
64
- version:
83
+ segments:
84
+ - 2
85
+ - 3
86
+ - 8
87
+ version: 2.3.8
88
+ type: :runtime
89
+ version_requirements: *id005
65
90
  - !ruby/object:Gem::Dependency
66
91
  name: loofah
67
- type: :runtime
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
92
+ prerelease: false
93
+ requirement: &id006 !ruby/object:Gem::Requirement
70
94
  requirements:
71
95
  - - ">="
72
96
  - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
99
+ - 3
100
+ - 1
73
101
  version: 0.3.1
74
- version:
102
+ type: :runtime
103
+ version_requirements: *id006
104
+ - !ruby/object:Gem::Dependency
105
+ name: rspec
106
+ prerelease: false
107
+ requirement: &id007 !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ type: :development
115
+ version_requirements: *id007
116
+ - !ruby/object:Gem::Dependency
117
+ name: diff-lcs
118
+ prerelease: false
119
+ requirement: &id008 !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ segments:
124
+ - 0
125
+ version: "0"
126
+ type: :development
127
+ version_requirements: *id008
75
128
  description:
76
129
  email: paul@pauldix.net
77
130
  executables: []
@@ -125,18 +178,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
178
  requirements:
126
179
  - - ">="
127
180
  - !ruby/object:Gem::Version
181
+ segments:
182
+ - 0
128
183
  version: "0"
129
- version:
130
184
  required_rubygems_version: !ruby/object:Gem::Requirement
131
185
  requirements:
132
186
  - - ">="
133
187
  - !ruby/object:Gem::Version
188
+ segments:
189
+ - 0
134
190
  version: "0"
135
- version:
136
191
  requirements: []
137
192
 
138
193
  rubyforge_project:
139
- rubygems_version: 1.3.5
194
+ rubygems_version: 1.3.6
140
195
  signing_key:
141
196
  specification_version: 2
142
197
  summary: "A feed fetching and parsing library that treats the internet like Godzilla treats Japan: it dominates and eats all."