simple-rss 1.0.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -4,11 +4,17 @@ require 'rake/testtask'
4
4
  require 'rake/rdoctask'
5
5
  require 'rake/gempackagetask'
6
6
  require 'rake/contrib/rubyforgepublisher'
7
+ require File.dirname(__FILE__) + '/lib/simple-rss'
7
8
 
8
- PKG_VERSION = "1.0.0"
9
+ PKG_VERSION = SimpleRSS::VERSION
10
+ PKG_NAME = "simple-rss"
11
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
12
+ RUBY_FORGE_PROJECT = "simple-rss"
13
+ RUBY_FORGE_USER = ENV['RUBY_FORGE_USER'] || "cardmagic"
14
+ RELEASE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
9
15
 
10
16
  PKG_FILES = FileList[
11
- "lib/*", "bin/*", "test/**/*", "[A-Z]*", "Rakefile", "doc/**/*"
17
+ "lib/*", "bin/*", "test/**/*", "[A-Z]*", "Rakefile", "html/**/*"
12
18
  ]
13
19
 
14
20
  desc "Default Task"
@@ -32,7 +38,7 @@ end
32
38
  desc "Create documentation"
33
39
  Rake::RDocTask.new("doc") { |rdoc|
34
40
  rdoc.title = "Simple RSS - A Flexible RSS and Atom reader for Ruby"
35
- rdoc.rdoc_dir = 'doc'
41
+ rdoc.rdoc_dir = 'html'
36
42
  rdoc.rdoc_files.include('README')
37
43
  rdoc.rdoc_files.include('lib/*.rb')
38
44
  }
@@ -88,3 +94,120 @@ desc "Publish new documentation"
88
94
  task :publish do
89
95
  Rake::RubyForgePublisher.new('simple-rss', 'cardmagic').upload
90
96
  end
97
+
98
+
99
+ desc "Publish the release files to RubyForge."
100
+ task :upload => [:package] do
101
+ files = ["gem", "tar.gz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
102
+
103
+ if RUBY_FORGE_PROJECT then
104
+ require 'net/http'
105
+ require 'open-uri'
106
+
107
+ project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/"
108
+ project_data = open(project_uri) { |data| data.read }
109
+ group_id = project_data[/[?&]group_id=(\d+)/, 1]
110
+ raise "Couldn't get group id" unless group_id
111
+
112
+ # This echos password to shell which is a bit sucky
113
+ if ENV["RUBY_FORGE_PASSWORD"]
114
+ password = ENV["RUBY_FORGE_PASSWORD"]
115
+ else
116
+ print "#{RUBY_FORGE_USER}@rubyforge.org's password: "
117
+ password = STDIN.gets.chomp
118
+ end
119
+
120
+ login_response = Net::HTTP.start("rubyforge.org", 80) do |http|
121
+ data = [
122
+ "login=1",
123
+ "form_loginname=#{RUBY_FORGE_USER}",
124
+ "form_pw=#{password}"
125
+ ].join("&")
126
+ http.post("/account/login.php", data)
127
+ end
128
+
129
+ cookie = login_response["set-cookie"]
130
+ puts login_response["set-cookie"]
131
+ raise "Login failed" unless cookie
132
+ headers = { "Cookie" => cookie }
133
+
134
+ release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
135
+ release_data = open(release_uri, headers) { |data| data.read }
136
+ package_id = release_data[/[?&]package_id=(\d+)/, 1]
137
+ raise "Couldn't get package id" unless package_id
138
+
139
+ first_file = true
140
+ release_id = ""
141
+
142
+ files.each do |filename|
143
+ basename = File.basename(filename)
144
+ file_ext = File.extname(filename)
145
+ file_data = File.open(filename, "rb") { |file| file.read }
146
+
147
+ puts "Releasing #{basename}..."
148
+
149
+ release_response = Net::HTTP.start("rubyforge.org", 80) do |http|
150
+ release_date = Time.now.strftime("%Y-%m-%d %H:%M")
151
+ type_map = {
152
+ ".zip" => "3000",
153
+ ".tgz" => "3110",
154
+ ".gz" => "3110",
155
+ ".gem" => "1400"
156
+ }; type_map.default = "9999"
157
+ type = type_map[file_ext]
158
+ boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
159
+
160
+ query_hash = if first_file then
161
+ {
162
+ "group_id" => group_id,
163
+ "package_id" => package_id,
164
+ "release_name" => RELEASE_NAME,
165
+ "release_date" => release_date,
166
+ "type_id" => type,
167
+ "processor_id" => "8000", # Any
168
+ "release_notes" => "",
169
+ "release_changes" => "",
170
+ "preformatted" => "1",
171
+ "submit" => "1"
172
+ }
173
+ else
174
+ {
175
+ "group_id" => group_id,
176
+ "release_id" => release_id,
177
+ "package_id" => package_id,
178
+ "step2" => "1",
179
+ "type_id" => type,
180
+ "processor_id" => "8000", # Any
181
+ "submit" => "Add This File"
182
+ }
183
+ end
184
+
185
+ query = "?" + query_hash.map do |(name, value)|
186
+ [name, URI.encode(value)].join("=")
187
+ end.join("&")
188
+
189
+ data = [
190
+ "--" + boundary,
191
+ "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
192
+ "Content-Type: application/octet-stream",
193
+ "Content-Transfer-Encoding: binary",
194
+ "", file_data, ""
195
+ ].join("\x0D\x0A")
196
+
197
+ release_headers = headers.merge(
198
+ "Content-Type" => "multipart/form-data; boundary=#{boundary}"
199
+ )
200
+
201
+ target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php"
202
+ http.post(target + query, data, release_headers)
203
+ end
204
+
205
+ if first_file then
206
+ release_id = release_response.body[/release_id=(\d+)/, 1]
207
+ raise("Couldn't get release id") unless release_id
208
+ end
209
+
210
+ first_file = false
211
+ end
212
+ end
213
+ end
@@ -105,6 +105,19 @@
105
105
  <div id="section">
106
106
 
107
107
 
108
+ <div id="constants-list">
109
+ <h3 class="section-bar">Constants</h3>
110
+
111
+ <div class="name-list">
112
+ <table summary="Constants">
113
+ <tr class="top-aligned-row context-row">
114
+ <td class="context-item-name">VERSION</td>
115
+ <td>=</td>
116
+ <td class="context-item-value">&quot;1.1&quot;</td>
117
+ </tr>
118
+ </table>
119
+ </div>
120
+ </div>
108
121
 
109
122
  <div id="aliases-list">
110
123
  <h3 class="section-bar">External Aliases</h3>
@@ -222,7 +235,7 @@
222
235
  <div class="method-heading">
223
236
  <a href="SimpleRSS.src/M000008.html" target="Code" class="method-signature"
224
237
  onclick="popupCode('SimpleRSS.src/M000008.html');return false;">
225
- <span class="method-name">parse</span><span class="method-args">(source, strict=false)</span>
238
+ <span class="method-name">parse</span><span class="method-args">(source, do_validate=true, ignore_unknown_element=true, parser_class=false)</span>
226
239
  </a>
227
240
  </div>
228
241
 
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 32</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 35</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">source</span>)
15
15
  <span class="ruby-ivar">@source</span> = <span class="ruby-identifier">source</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:read</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">read</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">to_s</span>
16
16
  <span class="ruby-ivar">@items</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 39</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 42</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">channel</span>() <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
15
  </body>
16
16
  </html>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 43</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 46</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">feed_tags</span>
15
15
  <span class="ruby-ivar">@@feed_tags</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 46</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 49</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">feed_tags=</span>(<span class="ruby-identifier">ft</span>)
15
15
  <span class="ruby-ivar">@@feed_tags</span> = <span class="ruby-identifier">ft</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 50</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 53</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">item_tags</span>
15
15
  <span class="ruby-ivar">@@item_tags</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 53</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 56</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">item_tags=</span>(<span class="ruby-identifier">it</span>)
15
15
  <span class="ruby-ivar">@@item_tags</span> = <span class="ruby-identifier">it</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,8 +10,8 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 58</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">strict</span>=<span class="ruby-keyword kw">false</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/simple-rss.rb, line 61</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">do_validate</span>=<span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">ignore_unknown_element</span>=<span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">parser_class</span>=<span class="ruby-keyword kw">false</span>)
15
15
  <span class="ruby-identifier">new</span> <span class="ruby-identifier">source</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
@@ -0,0 +1 @@
1
+ Wed Feb 01 18:08:07 PST 2006
File without changes
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Aug 29 18:10:35 PDT 2005</td>
59
+ <td>Wed Feb 01 17:57:26 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,6 +2,8 @@ require 'cgi'
2
2
  require 'time'
3
3
 
4
4
  class SimpleRSS
5
+ VERSION = "1.1"
6
+
5
7
  attr_reader :items, :source
6
8
  alias :entries :items
7
9
 
@@ -10,12 +12,13 @@ class SimpleRSS
10
12
  :title, :subtitle, :link,
11
13
  :description,
12
14
  :author, :webMaster, :managingEditor, :contributor,
13
- :pubDate, :lastBuildDate, :updated,
15
+ :pubDate, :lastBuildDate, :updated, :'dc:date',
14
16
  :generator, :language, :docs, :cloud,
15
17
  :ttl, :skipHours, :skipDays,
16
18
  :image, :logo, :icon, :rating,
17
19
  :rights, :copyright,
18
- :textInput
20
+ :textInput, :'feedburner:browserFriendly',
21
+ :'itunes:author', :'itunes:category'
19
22
  ]
20
23
 
21
24
  @@item_tags = [
@@ -23,7 +26,7 @@ class SimpleRSS
23
26
  :title, :link,
24
27
  :author, :contributor,
25
28
  :description, :summary, :content, :'content:encoded', :comments,
26
- :pubDate, :published, :updated, :expirationDate,
29
+ :pubDate, :published, :updated, :expirationDate, :modified, :'dc:date',
27
30
  :category, :guid,
28
31
  :'trackback:ping', :'trackback:about',
29
32
  :'dc:creator', :'dc:title', :'dc:subject', :'dc:rights', :'dc:publisher'
@@ -55,7 +58,7 @@ class SimpleRSS
55
58
  end
56
59
 
57
60
  # The strict attribute is for compatibility with Ruby's standard RSS parser
58
- def parse(source, strict=false)
61
+ def parse(source, do_validate=true, ignore_unknown_element=true, parser_class=false)
59
62
  new source
60
63
  end
61
64
  end
@@ -80,18 +83,19 @@ class SimpleRSS
80
83
  end
81
84
 
82
85
  if $2 || $3
83
- eval %{ @#{ clean_tag tag } = clean_content(tag, $2, $3) }
84
- self.class.class_eval %{ attr_reader tag }
86
+ tag_cleaned = clean_tag(tag)
87
+ eval %{ @#{ tag_cleaned } = clean_content(tag, $2, $3) }
88
+ self.class.class_eval %{ attr_reader :#{ tag_cleaned } }
85
89
  end
86
90
  end
87
91
 
88
92
  # RSS items' title, link, and description
89
- @source.scan( %r{<(rss:|atom:)?(item|entry).*?>(.*?)</(rss:|atom:)?(item|entry)>}mi ) do |match|
93
+ @source.scan( %r{<(rss:|atom:)?(item|entry)([\s][^>]*)?>(.*?)</(rss:|atom:)?(item|entry)>}mi ) do |match|
90
94
  item = Hash.new
91
95
  @@item_tags.each do |tag|
92
- if match[2] =~ %r{<(rss:|atom:)?#{tag}(.*?)>(.*?)</(rss:|atom:)?#{tag}>}mi
96
+ if match[3] =~ %r{<(rss:|atom:)?#{tag}(.*?)>(.*?)</(rss:|atom:)?#{tag}>}mi
93
97
  nil
94
- elsif match[2] =~ %r{<(rss:|atom:)?#{tag}(.*?)/\s*>}mi
98
+ elsif match[3] =~ %r{<(rss:|atom:)?#{tag}(.*?)/\s*>}mi
95
99
  nil
96
100
  end
97
101
  item[clean_tag(tag)] = clean_content(tag, $2, $3) if $2 || $3
@@ -105,8 +109,8 @@ class SimpleRSS
105
109
  def clean_content(tag, attrs, content)
106
110
  content = content.to_s
107
111
  case tag
108
- when :pubDate, :lastBuildDate, :published, :updated, :expirationDate
109
- Time.parse(content)
112
+ when :pubDate, :lastBuildDate, :published, :updated, :expirationDate, :modified, :'dc:date'
113
+ Time.parse(content) rescue unescape(content)
110
114
  when :author, :contributor, :skipHours, :skipDays
111
115
  unescape(content.gsub(/<.*?>/,''))
112
116
  else
@@ -24,6 +24,8 @@ class BaseTest < Test::Unit::TestCase
24
24
  assert_equal "http://slashdot.org/", @rss09.channel.link
25
25
  assert_equal "http://books.slashdot.org/article.pl?sid=05/08/29/1319236&amp;from=rss", @rss09.items.first.link
26
26
  assert_equal "http://books.slashdot.org/article.pl?sid=05/08/29/1319236&amp;from=rss", @rss09.items.first[:link]
27
+ assert_equal Time.parse("Wed Aug 24 13:33:34 UTC 2005"), @rss20.items.first.pubDate
28
+ assert_equal Time.parse("Fri Sep 09 02:52:31 PDT 2005"), @rss09.channel.dc_date
27
29
  end
28
30
 
29
31
  def test_rss20
@@ -32,6 +34,7 @@ class BaseTest < Test::Unit::TestCase
32
34
  assert_equal "http://tech.rufy.com", @rss20.channel.link
33
35
  assert_equal "http://feeds.feedburner.com/rufytech?m=68", @rss20.items.first.link
34
36
  assert_equal "http://feeds.feedburner.com/rufytech?m=68", @rss20.items.first[:link]
37
+ assert_equal "This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.", @rss20.channel.feedburner_browserFriendly
35
38
  end
36
39
 
37
40
  def test_atom
@@ -2,12 +2,14 @@
2
2
 
3
3
  <rdf:RDF
4
4
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
6
  xmlns="http://my.netscape.com/rdf/simple/0.9/">
6
7
 
7
8
  <channel>
8
9
  <title>Slashdot</title>
9
10
  <link>http://slashdot.org/</link>
10
11
  <description>News for nerds, stuff that matters</description>
12
+ <dc:date>2005-09-09T02:52:31-07:00</dc:date>
11
13
  </channel>
12
14
 
13
15
  <image>
@@ -19,6 +21,7 @@ xmlns="http://my.netscape.com/rdf/simple/0.9/">
19
21
  <item>
20
22
  <title>JBoss - A Developer's Notebook</title>
21
23
  <link>http://books.slashdot.org/article.pl?sid=05/08/29/1319236&amp;from=rss</link>
24
+ <dc:date>2005-09-09T02:52:31-07:00</dc:date>
22
25
  </item>
23
26
 
24
27
  <item>
metadata CHANGED
@@ -1,73 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.10
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: simple-rss
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
7
- date: 2005-08-29
8
- summary: "A simple, flexible, extensible, and liberal RSS and Atom reader for Ruby. It is
9
- designed to be backwards compatible with the standard RSS parser, but will never
10
- do RSS generation."
6
+ version: "1.1"
7
+ date: 2006-02-01 00:00:00 -08:00
8
+ summary: A simple, flexible, extensible, and liberal RSS and Atom reader for Ruby. It is designed to be backwards compatible with the standard RSS parser, but will never do RSS generation.
11
9
  require_paths:
12
- - lib
10
+ - lib
13
11
  email: lucas@rufy.com
14
12
  homepage: http://simple-rss.rubyforge.org/
15
13
  rubyforge_project:
16
- description: "A simple, flexible, extensible, and liberal RSS and Atom reader for Ruby. It is
17
- designed to be backwards compatible with the standard RSS parser, but will never
18
- do RSS generation."
14
+ description: A simple, flexible, extensible, and liberal RSS and Atom reader for Ruby. It is designed to be backwards compatible with the standard RSS parser, but will never do RSS generation.
19
15
  autorequire:
20
16
  default_executable:
21
17
  bindir: bin
22
18
  has_rdoc: true
23
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
24
20
  requirements:
25
- -
26
- - ">"
27
- - !ruby/object:Gem::Version
28
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
29
24
  version:
30
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
31
28
  authors:
32
- - Lucas Carlson
29
+ - Lucas Carlson
33
30
  files:
34
- - lib/simple-rss.rb
35
- - test/base
36
- - test/data
37
- - test/test_helper.rb
38
- - test/base/base_test.rb
39
- - test/data/atom.xml
40
- - test/data/not-rss.xml
41
- - test/data/rss09.rdf
42
- - test/data/rss20.xml
43
- - LICENSE
44
- - Rakefile
45
- - README
46
- - doc/classes
47
- - doc/created.rid
48
- - doc/files
49
- - doc/fr_class_index.html
50
- - doc/fr_file_index.html
51
- - doc/fr_method_index.html
52
- - doc/index.html
53
- - doc/rdoc-style.css
54
- - doc/classes/SimpleRSS.html
55
- - doc/classes/SimpleRSS.src
56
- - doc/classes/SimpleRSSError.html
57
- - doc/classes/SimpleRSS.src/M000001.html
58
- - doc/classes/SimpleRSS.src/M000002.html
59
- - doc/classes/SimpleRSS.src/M000004.html
60
- - doc/classes/SimpleRSS.src/M000005.html
61
- - doc/classes/SimpleRSS.src/M000006.html
62
- - doc/classes/SimpleRSS.src/M000007.html
63
- - doc/classes/SimpleRSS.src/M000008.html
64
- - doc/files/lib
65
- - doc/files/README.html
66
- - doc/files/lib/simple-rss_rb.html
31
+ - lib/simple-rss.rb
32
+ - test/base
33
+ - test/data
34
+ - test/test_helper.rb
35
+ - test/base/base_test.rb
36
+ - test/data/atom.xml
37
+ - test/data/not-rss.xml
38
+ - test/data/rss09.rdf
39
+ - test/data/rss20.xml
40
+ - LICENSE
41
+ - Rakefile
42
+ - README
43
+ - html/classes
44
+ - html/created.rid
45
+ - html/files
46
+ - html/fr_class_index.html
47
+ - html/fr_file_index.html
48
+ - html/fr_method_index.html
49
+ - html/index.html
50
+ - html/rdoc-style.css
51
+ - html/classes/SimpleRSS.html
52
+ - html/classes/SimpleRSS.src
53
+ - html/classes/SimpleRSSError.html
54
+ - html/classes/SimpleRSS.src/M000001.html
55
+ - html/classes/SimpleRSS.src/M000002.html
56
+ - html/classes/SimpleRSS.src/M000004.html
57
+ - html/classes/SimpleRSS.src/M000005.html
58
+ - html/classes/SimpleRSS.src/M000006.html
59
+ - html/classes/SimpleRSS.src/M000007.html
60
+ - html/classes/SimpleRSS.src/M000008.html
61
+ - html/files/lib
62
+ - html/files/README.html
63
+ - html/files/lib/simple-rss_rb.html
67
64
  test_files: []
65
+
68
66
  rdoc_options: []
67
+
69
68
  extra_rdoc_files: []
69
+
70
70
  executables: []
71
+
71
72
  extensions: []
73
+
72
74
  requirements: []
73
- dependencies: []
75
+
76
+ dependencies: []
77
+
@@ -1 +0,0 @@
1
- Mon Aug 29 22:18:48 PDT 2005