feedtools 0.2.20 → 0.2.21

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == FeedTools 0.2.21
2
+ * fixed atom generation error
3
+ * added summary element to generated atom xml
4
+ * added warning message for improperly set up database tables
1
5
  == FeedTools 0.2.20
2
6
  * fixed some atom namespace bugs
3
7
  * added a summary method to feed items
@@ -32,7 +32,7 @@ FEED_TOOLS_ENV = ENV['FEED_TOOLS_ENV'] ||
32
32
  ENV['RAILS_ENV'] ||
33
33
  'development' # :nodoc:
34
34
 
35
- FEED_TOOLS_VERSION = "0.2.20"
35
+ FEED_TOOLS_VERSION = "0.2.21"
36
36
 
37
37
  FEED_TOOLS_NAMESPACES = {
38
38
  "admin" => "http://webns.net/mvcb/",
@@ -173,8 +173,7 @@ module FeedTools
173
173
  :url_normalization_enabled => true,
174
174
  :strip_comment_count => false,
175
175
  :max_ttl => 3.days.to_s,
176
- :output_encoding => "utf-8",
177
- :no_content_value => "[no description]"
176
+ :output_encoding => "utf-8"
178
177
  }.merge(config_hash)
179
178
  end
180
179
  return @configurations
@@ -90,7 +90,21 @@ module FeedTools
90
90
  end
91
91
  return true
92
92
  end
93
-
93
+
94
+ # False if there is an error of any kind
95
+ def DatabaseFeedCache.set_up_correctly?
96
+ begin
97
+ ActiveRecord::Base.connection
98
+ if !ActiveRecord::Base.configurations.nil? &&
99
+ !DatabaseFeedCache.table_exists?
100
+ return false
101
+ end
102
+ rescue Exception
103
+ return false
104
+ end
105
+ return true
106
+ end
107
+
94
108
  # True if the appropriate database table already exists
95
109
  def DatabaseFeedCache.table_exists?
96
110
  begin
@@ -177,6 +177,11 @@ module FeedTools
177
177
  # Loads the feed from the remote url if the feed has expired from the cache or cannot be
178
178
  # retrieved from the cache for some reason.
179
179
  def update!
180
+ if !FeedTools.feed_cache.nil? &&
181
+ !FeedTools.feed_cache.set_up_correctly?
182
+ raise "Your feed cache system is incorrectly set up. " +
183
+ "Please see the documentation for more information."
184
+ end
180
185
  if self.http_headers.blank? && !(self.cache_object.nil?) &&
181
186
  !(self.cache_object.http_headers.nil?)
182
187
  @http_headers = YAML.load(self.cache_object.http_headers)
@@ -2257,9 +2262,6 @@ module FeedTools
2257
2262
  unless description.blank?
2258
2263
  xml_builder.subtitle(self.subtitle,
2259
2264
  "type" => "html")
2260
- else
2261
- xml_builder.subtitle(FeedTools.no_content_string,
2262
- "type" => "html")
2263
2265
  end
2264
2266
  if self.updated != nil
2265
2267
  xml_builder.updated(self.updated.iso8601)
@@ -1958,11 +1958,12 @@ module FeedTools
1958
1958
  "type" => "text/html",
1959
1959
  "title" => FeedTools.escape_entities(title))
1960
1960
  end
1961
- if !description.blank?
1962
- xml_builder.content(description,
1961
+ if !self.content.blank?
1962
+ xml_builder.content(self.content,
1963
1963
  "type" => "html")
1964
- elsif !FeedTools.configurations[:no_content_string].blank?
1965
- xml_builder.content(FeedTools.configurations[:no_content_string],
1964
+ end
1965
+ if !self.summary.blank?
1966
+ xml_builder.content(self.summary,
1966
1967
  "type" => "html")
1967
1968
  end
1968
1969
  if self.updated != nil
data/rakefile CHANGED
@@ -7,7 +7,7 @@ require 'rake/gempackagetask'
7
7
  require 'rake/contrib/rubyforgepublisher'
8
8
 
9
9
  PKG_NAME = 'feedtools'
10
- PKG_VERSION = '0.2.20'
10
+ PKG_VERSION = '0.2.21'
11
11
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
12
12
 
13
13
  RELEASE_NAME = "REL #{PKG_VERSION}"
@@ -19,7 +19,7 @@ class GenerationTest < Test::Unit::TestCase
19
19
  item.content = "This is item number #{i}"
20
20
  item.link = "http://example.com/item#{i}/"
21
21
  feed.items << item
22
- sleep(1)
22
+ sleep(0.5)
23
23
  end
24
24
  output_xml = feed.build_xml('rss', 2.0)
25
25
 
@@ -57,7 +57,7 @@ class GenerationTest < Test::Unit::TestCase
57
57
  item.content = "This is item number #{i}"
58
58
  item.link = "http://example.com/item#{i}/"
59
59
  feed.items << item
60
- sleep(1)
60
+ sleep(0.5)
61
61
  end
62
62
  output_xml = feed.build_xml('rss', 1.0)
63
63
 
@@ -95,7 +95,7 @@ class GenerationTest < Test::Unit::TestCase
95
95
  item.content = "This is item number #{i}"
96
96
  item.link = "http://example.com/item#{i}/"
97
97
  feed.items << item
98
- sleep(1)
98
+ sleep(0.5)
99
99
  end
100
100
  output_xml = feed.build_xml('atom', 1.0)
101
101
 
@@ -121,4 +121,115 @@ class GenerationTest < Test::Unit::TestCase
121
121
  assert_equal('atom', parsed_feed.feed_type)
122
122
  assert_equal(1.0, parsed_feed.feed_version)
123
123
  end
124
+
125
+ def test_generate_rss_with_no_content
126
+ feed = FeedTools::Feed.new
127
+ feed.title = 'Test Feed'
128
+ feed.subtitle = nil
129
+ feed.link = 'http://example.com/'
130
+ 3.times do |i|
131
+ item = FeedTools::FeedItem.new
132
+ item.content = nil
133
+ item.link = "http://example.com/item#{i}/"
134
+ feed.items << item
135
+ sleep(0.5)
136
+ end
137
+ output_xml = feed.build_xml('rss', 2.0)
138
+
139
+ # Now read it back in
140
+ parsed_feed = FeedTools::Feed.new
141
+ parsed_feed.feed_data = output_xml
142
+ parsed_feed.feed_data_type = :xml
143
+
144
+ assert_equal('Test Feed', parsed_feed.title)
145
+ assert_equal(nil, parsed_feed.description)
146
+ assert_equal('http://example.com/', parsed_feed.link)
147
+
148
+ # Note reverse chronological order
149
+ assert_equal(nil, parsed_feed.items[0].content)
150
+ assert_equal('http://example.com/item2/', parsed_feed.items[0].link)
151
+ assert_equal(nil, parsed_feed.items[1].content)
152
+ assert_equal('http://example.com/item1/', parsed_feed.items[1].link)
153
+ assert_equal(nil, parsed_feed.items[2].content)
154
+ assert_equal('http://example.com/item0/', parsed_feed.items[2].link)
155
+
156
+ # Check feed information
157
+ assert_equal(:xml, parsed_feed.feed_data_type)
158
+ assert_equal('rss', parsed_feed.feed_type)
159
+ assert_equal(2.0, parsed_feed.feed_version)
160
+ end
161
+
162
+ def test_generate_rdf_with_no_content
163
+ feed = FeedTools::Feed.new
164
+ feed.title = 'Test Feed'
165
+ feed.subtitle = nil
166
+ feed.link = 'http://example.com/'
167
+ 3.times do |i|
168
+ item = FeedTools::FeedItem.new
169
+ item.content = nil
170
+ item.link = "http://example.com/item#{i}/"
171
+ feed.items << item
172
+ sleep(0.5)
173
+ end
174
+ output_xml = feed.build_xml('rss', 1.0)
175
+
176
+ # Now read it back in
177
+ parsed_feed = FeedTools::Feed.new
178
+ parsed_feed.feed_data = output_xml
179
+ parsed_feed.feed_data_type = :xml
180
+
181
+ assert_equal('Test Feed', parsed_feed.title)
182
+ assert_equal(nil, parsed_feed.description)
183
+ assert_equal('http://example.com/', parsed_feed.link)
184
+
185
+ # Note reverse chronological order
186
+ assert_equal(nil, parsed_feed.items[0].content)
187
+ assert_equal('http://example.com/item2/', parsed_feed.items[0].link)
188
+ assert_equal(nil, parsed_feed.items[1].content)
189
+ assert_equal('http://example.com/item1/', parsed_feed.items[1].link)
190
+ assert_equal(nil, parsed_feed.items[2].content)
191
+ assert_equal('http://example.com/item0/', parsed_feed.items[2].link)
192
+
193
+ # Check feed information
194
+ assert_equal(:xml, parsed_feed.feed_data_type)
195
+ assert_equal('rss', parsed_feed.feed_type)
196
+ assert_equal(1.0, parsed_feed.feed_version)
197
+ end
198
+
199
+ def test_generate_atom_with_no_content
200
+ feed = FeedTools::Feed.new
201
+ feed.title = 'Test Feed'
202
+ feed.subtitle = nil
203
+ feed.link = 'http://example.com/'
204
+ 3.times do |i|
205
+ item = FeedTools::FeedItem.new
206
+ item.content = nil
207
+ item.link = "http://example.com/item#{i}/"
208
+ feed.items << item
209
+ sleep(0.5)
210
+ end
211
+ output_xml = feed.build_xml('atom', 1.0)
212
+
213
+ # Now read it back in
214
+ parsed_feed = FeedTools::Feed.new
215
+ parsed_feed.feed_data = output_xml
216
+ parsed_feed.feed_data_type = :xml
217
+
218
+ assert_equal('Test Feed', parsed_feed.title)
219
+ assert_equal(nil, parsed_feed.description)
220
+ assert_equal('http://example.com/', parsed_feed.link)
221
+
222
+ # Note reverse chronological order
223
+ assert_equal(nil, parsed_feed.items[0].content)
224
+ assert_equal('http://example.com/item2/', parsed_feed.items[0].link)
225
+ assert_equal(nil, parsed_feed.items[1].content)
226
+ assert_equal('http://example.com/item1/', parsed_feed.items[1].link)
227
+ assert_equal(nil, parsed_feed.items[2].content)
228
+ assert_equal('http://example.com/item0/', parsed_feed.items[2].link)
229
+
230
+ # Check feed information
231
+ assert_equal(:xml, parsed_feed.feed_data_type)
232
+ assert_equal('atom', parsed_feed.feed_type)
233
+ assert_equal(1.0, parsed_feed.feed_version)
234
+ end
124
235
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: feedtools
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.20
7
- date: 2006-01-21 00:00:00 -05:00
6
+ version: 0.2.21
7
+ date: 2006-01-22 00:00:00 -05:00
8
8
  summary: "Parsing, generation, and caching system for xml news feeds."
9
9
  require_paths:
10
10
  - lib