feedparser 0.1.0

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.
@@ -0,0 +1,35 @@
1
+ ## $:.unshift(File.dirname(__FILE__))
2
+
3
+
4
+ ## minitest setup
5
+
6
+ require 'minitest/autorun'
7
+
8
+ require 'logutils'
9
+ require 'fetcher'
10
+
11
+ ## our own code
12
+
13
+ require 'feedutils'
14
+
15
+
16
+ LogUtils::Logger.root.level = :debug
17
+
18
+ def parse_feed( url )
19
+ xml = Fetcher.read( url )
20
+
21
+ FeedUtils::Parser.parse( xml )
22
+ end
23
+
24
+
25
+
26
+ def read_feed_from_file( name )
27
+ File.read( "#{FeedUtils.root}/test/feeds/#{name}")
28
+ end
29
+
30
+ def parse_feed_from_file( name )
31
+ xml = read_feed_from_file( name )
32
+
33
+ FeedUtils::Parser.parse( xml )
34
+ end
35
+
@@ -0,0 +1,45 @@
1
+ ###
2
+ # to run use
3
+ # ruby -I ./lib -I ./test test/test_atom.rb
4
+ # or better
5
+ # rake test
6
+
7
+ require 'helper'
8
+
9
+ class TestAtom < MiniTest::Test
10
+
11
+ def test_rubyonrails
12
+ feed = parse_feed( 'http://weblog.rubyonrails.org/feed/atom.xml' )
13
+
14
+ assert_equal 'atom', feed.format
15
+ assert_equal 'http://weblog.rubyonrails.org/', feed.url
16
+ end
17
+
18
+
19
+ def test_railstutorial
20
+ feed = parse_feed( 'http://feeds.feedburner.com/railstutorial?format=xml' )
21
+
22
+ assert_equal 'atom', feed.format
23
+ assert_equal 'http://news.railstutorial.org/', feed.url
24
+ end
25
+
26
+
27
+ def test_googlegroup
28
+ feed = parse_feed( 'https://groups.google.com/forum/feed/beerdb/topics/atom.xml?num=15' )
29
+
30
+ assert_equal 'atom', feed.format
31
+ assert_equal 'https://groups.google.com/d/forum/beerdb', feed.url
32
+ end
33
+
34
+
35
+ def test_headius
36
+ feed = parse_feed( 'http://blog.headius.com/feeds/posts/default' )
37
+
38
+ assert_equal 'atom', feed.format
39
+ assert_equal 'Blogger', feed.generator
40
+ assert_equal 'Headius', feed.title
41
+ assert_equal 'Helping the JVM Into the 21st Century', feed.title2 # aka subtitle in atom
42
+ assert_equal 'http://blog.headius.com/', feed.url
43
+ end
44
+
45
+ end
@@ -0,0 +1,28 @@
1
+ ###
2
+ # to run use
3
+ # ruby -I ./lib -I ./test test/test_atom_from_file.rb
4
+ # or better
5
+ # rake test
6
+
7
+ require 'helper'
8
+
9
+
10
+ class TestAtomFromFile < MiniTest::Test
11
+
12
+ def test_googlegroup
13
+ feed = parse_feed_from_file( 'googlegroups.atom' )
14
+
15
+ assert_equal 'atom', feed.format
16
+ assert_equal 'Google Groups', feed.generator
17
+ assert_equal 'https://groups.google.com/d/forum/beerdb', feed.url
18
+ end
19
+
20
+ def test_googlegroup2
21
+ feed = parse_feed_from_file( 'googlegroups2.atom' )
22
+
23
+ assert_equal 'atom', feed.format
24
+ assert_equal 'Google Groups (w/ leading n trailing newlines stripped)', feed.generator
25
+ assert_equal 'https://groups.google.com/d/forum/beerdb', feed.url
26
+ end
27
+
28
+ end # class TestAtomFromFile
@@ -0,0 +1,41 @@
1
+ ###
2
+ # to run use
3
+ # ruby -I ./lib -I ./test test/test_atom_v03.rb
4
+ # or better
5
+ # rake test
6
+
7
+ require 'helper'
8
+
9
+
10
+ class TestAtomV03 < MiniTest::Test
11
+
12
+ def test_match
13
+ xmlv1 = read_feed_from_file( 'googlegroups.atom' )
14
+ xmlv03 = read_feed_from_file( 'quirksblog.atom.v03' )
15
+
16
+ atomv03helper = FeedUtils::AtomV03Helper.new
17
+
18
+ assert_equal false, atomv03helper.match?( xmlv1 )
19
+ assert_equal true, atomv03helper.match?( xmlv03 )
20
+
21
+ xmlv03up = atomv03helper.convert( xmlv03 )
22
+ assert_equal false, atomv03helper.match?( xmlv03up )
23
+
24
+ pp xmlv03up[0..1000]
25
+ end
26
+
27
+ def test_parse
28
+ feed = parse_feed_from_file( 'quirksblog.atom.v03' )
29
+
30
+ pp feed.updated
31
+ assert_equal '2014-12-31T15:33:00+00:00', feed.updated.to_s
32
+
33
+ pp feed.items[0].updated
34
+ assert_equal '2014-12-31T15:33:00+00:00', feed.items[0].updated.to_s
35
+
36
+ pp feed.items[1].updated
37
+ assert_equal '2014-11-26T12:11:25+00:00', feed.items[1].updated.to_s
38
+ end
39
+
40
+ end # class TestAtomV03
41
+
@@ -0,0 +1,38 @@
1
+ ###
2
+ # to run use
3
+ # ruby -I ./lib -I ./test test/test_rss.rb
4
+ # or better
5
+ # rake test
6
+
7
+ require 'helper'
8
+
9
+ class TestRss < MiniTest::Test
10
+
11
+
12
+ def test_rubyflow
13
+ feed = parse_feed( 'http://feeds.feedburner.com/Rubyflow?format=xml' )
14
+
15
+ assert_equal 'rss 2.0', feed.format
16
+ end
17
+
18
+ def test_sitepointruby
19
+ feed = parse_feed( 'http://www.sitepoint.com/ruby/feed/' )
20
+
21
+ assert_equal 'rss 2.0', feed.format
22
+ end
23
+
24
+ def test_lambdatheultimate
25
+ ## check - has no item.guid - will use item.link for guid
26
+ feed = parse_feed( 'http://lambda-the-ultimate.org/rss.xml' )
27
+
28
+ assert_equal 'rss 2.0', feed.format
29
+ end
30
+
31
+ def test_rubymine
32
+ # includes item/content:encoded
33
+ feed = parse_feed( 'http://feeds.feedburner.com/jetbrains_rubymine?format=xml' )
34
+
35
+ assert_equal 'rss 2.0', feed.format
36
+ end
37
+
38
+ end
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: feedparser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Gerald Bauer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logutils
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hoe
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.13'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.13'
55
+ description: feedparser - web feed parser and normalizer (RSS 2.0, Atom, etc.)
56
+ email: feedreader@googlegroups.com
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files:
60
+ - HISTORY.md
61
+ - Manifest.txt
62
+ - README.md
63
+ files:
64
+ - ".gemtest"
65
+ - HISTORY.md
66
+ - Manifest.txt
67
+ - README.md
68
+ - Rakefile
69
+ - lib/feedparser.rb
70
+ - lib/feedparser/builder/atom.rb
71
+ - lib/feedparser/builder/rss.rb
72
+ - lib/feedparser/feed.rb
73
+ - lib/feedparser/helper/atom_v03.rb
74
+ - lib/feedparser/item.rb
75
+ - lib/feedparser/parser.rb
76
+ - lib/feedparser/version.rb
77
+ - test/feeds/googlegroups.atom
78
+ - test/feeds/googlegroups2.atom
79
+ - test/feeds/quirksblog.atom.v03
80
+ - test/helper.rb
81
+ - test/test_atom.rb
82
+ - test/test_atom_from_file.rb
83
+ - test/test_atom_v03.rb
84
+ - test/test_rss.rb
85
+ homepage: https://github.com/feedreader/feed.parser
86
+ licenses:
87
+ - Public Domain
88
+ metadata: {}
89
+ post_install_message:
90
+ rdoc_options:
91
+ - "--main"
92
+ - README.md
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 1.9.2
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.4.2
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: feedparser - web feed parser and normalizer (RSS 2.0, Atom, etc.)
111
+ test_files:
112
+ - test/test_atom_v03.rb
113
+ - test/test_atom.rb
114
+ - test/test_atom_from_file.rb
115
+ - test/test_rss.rb