urss 0.0.3 → 0.3.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.
data/README.md CHANGED
@@ -82,6 +82,12 @@ rss.entries.first.medias.first.content_url
82
82
  #=> http://farm9.staticflickr.com/8159/6960539484_56665aba46_b.jpg
83
83
  ````
84
84
 
85
+ ## Reporting not working Feed
86
+
87
+ If you encounter a Feed (RSS or Atom) where an attribute is not well parsed: Open an issue with a dump of the feed.
88
+
89
+ You can use `curl` to do this and post the output (Use [gists](https://gist.github.com/) if it is very long).
90
+
85
91
  ## Contributing
86
92
 
87
93
  1. Fork it
@@ -1,7 +1,7 @@
1
1
  class Urss::Feed
2
2
 
3
3
  # ~~~~ Attributes ~~~~
4
- attr_accessor :title, :url, :description, :updated_at, :entries
4
+ attr_accessor :title, :url, :description, :updated_at, :entries, :author
5
5
 
6
6
  # ~~~~ Class methods ~~~~
7
7
 
@@ -12,6 +12,12 @@ class Urss::Feed
12
12
  self.description = nil
13
13
  self.updated_at = nil
14
14
  self.entries = []
15
+ self.author = nil
16
+ end
17
+
18
+ def finalize!
19
+ # Fill in all entries author field with the Feed#author content when entry author field is empty
20
+ self.entries.each{|entry| entry.author = self.author if entry.author.nil? || entry.author == ""}
15
21
  end
16
22
 
17
23
  end
@@ -13,6 +13,7 @@ class Urss::Feed::Atom < Urss::Feed
13
13
  feed_rss.url = nokogiri_instance.xpath("//#{namespace}#{root_node}/#{namespace}link[@rel='self']").attr("href").value
14
14
  feed_rss.description = nokogiri_instance.xpath("//#{namespace}#{root_node}/#{namespace}subtitle").text.strip
15
15
  feed_rss.updated_at = nokogiri_instance.xpath("//#{namespace}#{root_node}/#{namespace}updated").text
16
+ feed_rss.author = nokogiri_instance.xpath("//#{namespace}#{root_node}/#{namespace}author/#{namespace}name").text
16
17
  nokogiri_instance.xpath("//#{namespace}entry").each {|item| feed_rss.entries << Urss::Feed::Atom::Entry.build(item, namespace)}
17
18
 
18
19
  feed_rss
@@ -11,10 +11,17 @@ class Urss::Feed::Atom::Entry < Urss::Feed::Entry
11
11
  entry.url = nokogiri_instance.xpath("./#{namespace}link[@rel='alternate']").attr("href").value
12
12
  entry.created_at = nokogiri_instance.xpath("./#{namespace}published").text
13
13
  entry.author = nokogiri_instance.xpath("./#{namespace}author/#{namespace}name").text
14
- entry.content = nokogiri_instance.xpath("./description").text
14
+ entry.content = case nokogiri_instance.xpath("./#{namespace}content").attr("type").value
15
+ when "xhtml", "html"
16
+ nokogiri_instance.xpath("./#{namespace}content").inner_html
17
+ else
18
+ nokogiri_instance.xpath("./#{namespace}content").text
19
+ end
15
20
 
16
- if media_url = nokogiri_instance.xpath("./#{namespace}link[@rel='enclosure']").attr("href").value
17
- entry.medias << Urss::Media.new(:content_url => media_url)
21
+ unless (media = nokogiri_instance.xpath("./#{namespace}link[@rel='enclosure']")).empty?
22
+ if media_url = media.attr("href").value
23
+ entry.medias << Urss::Media.new(:content_url => media_url)
24
+ end
18
25
  end
19
26
 
20
27
  entry
@@ -16,5 +16,5 @@ class Urss::Feed::Entry
16
16
  self.content = nil
17
17
  self.medias = []
18
18
  end
19
-
19
+
20
20
  end
@@ -17,6 +17,9 @@ class Urss::Rss
17
17
  when "feed"
18
18
  Urss::Feed::Atom
19
19
  end.build(root_instance, namespace, root)
20
+
21
+ rss_object.finalize!
22
+
20
23
  return rss_object
21
24
  break
22
25
  end
@@ -1,3 +1,3 @@
1
1
  module Urss
2
- VERSION = "0.0.3"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -12,6 +12,15 @@ require "support/webmocks"
12
12
 
13
13
  require "urss"
14
14
 
15
+ # Logging is enabled when logs/ folder exists
16
+ logs_path = "logs"
17
+ if File.exists?(logs_path)
18
+ require "logger"
19
+ log_file_path = File.join(logs_path, "test.log")
20
+ FileUtils.touch(log_file_path) unless File.exists?(log_file_path)
21
+ @@logger = Logger.new(log_file_path)
22
+ end
23
+
15
24
  RSpec.configure do |config|
16
25
 
17
26
  end
@@ -0,0 +1,82 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <feed xmlns:im="http://itunes.apple.com/rss" xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
3
+ <id>http://itunes.apple.com/lu/rss/topalbums/limit=10/xml</id>
4
+ <title>iTunes Store: Top Albums</title>
5
+ <updated>2012-08-20T10:51:05-07:00</updated>
6
+ <link rel="alternate" type="text/html" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTop?id=29763&amp;popId=11&amp;s=143451"/>
7
+ <link rel="self" href="http://itunes.apple.com/lu/rss/topalbums/limit=10/xml"/>
8
+ <icon>http://itunes.apple.com/favicon.ico</icon>
9
+ <author>
10
+ <name>iTunes Store</name>
11
+ <uri>http://www.apple.com/uk/itunes/</uri>
12
+ </author>
13
+ <rights>Copyright 2008 Apple Inc.</rights>
14
+ <entry>
15
+ <updated>2012-08-20T10:51:05-07:00</updated>
16
+ <id im:id="538385017">http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2</id>
17
+ <title>NRJ Party Summer Edition - 2012 - Various Artists</title>
18
+ <im:name>NRJ Party Summer Edition - 2012</im:name>
19
+ <link rel="alternate" type="text/html" href="http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2"/>
20
+ <im:contentType term="Music" label="Music">
21
+ <im:contentType term="Album" label="Album"/>
22
+ </im:contentType>
23
+ <category im:id="17" term="Dance" scheme="http://itunes.apple.com/lu/genre/music-dance/id17?uo=2" label="Dance"/>
24
+ <im:artist>Various Artists</im:artist>
25
+ <im:price amount="9.99000" currency="EUR">9,99 €</im:price>
26
+ <im:image height="55">http://a5.mzstatic.com/us/r1000/085/Music/v4/81/12/01/811201e7-96da-4c95-4fc1-c85ac3e716b1/5414165055532.55x55-70.jpg</im:image>
27
+ <im:image height="60">http://a2.mzstatic.com/us/r1000/085/Music/v4/81/12/01/811201e7-96da-4c95-4fc1-c85ac3e716b1/5414165055532.60x60-50.jpg</im:image>
28
+ <im:image height="170">http://a1.mzstatic.com/us/r1000/085/Music/v4/81/12/01/811201e7-96da-4c95-4fc1-c85ac3e716b1/5414165055532.170x170-75.jpg</im:image>
29
+ <rights>℗ 2012 541 / N.E.W.S.</rights>
30
+ <im:releaseDate label="29 June 2012">2012-06-29T00:00:00-07:00</im:releaseDate>
31
+ <im:itemCount>25</im:itemCount>
32
+ <content type="html">&lt;table border="0" width="100%"&gt;
33
+ &lt;tr&gt;
34
+ &lt;td&gt;
35
+ &lt;table border="0" width="100%" cellspacing="0" cellpadding="0"&gt;
36
+ &lt;tr valign="top" align="left"&gt;
37
+
38
+ &lt;td align="center" width="166" valign="top"&gt;
39
+ &lt;a href="http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2"&gt;&lt;img border="0" alt="NRJ Party Summer Edition - 2012artwork" src="http://a1.mzstatic.com/us/r1000/085/Music/v4/81/12/01/811201e7-96da-4c95-4fc1-c85ac3e716b1/5414165055532.170x170-75.jpg" /&gt;&lt;/a&gt;
40
+ &lt;/td&gt;
41
+ &lt;td width="10"&gt;&lt;img alt="" width="10" height="1" src="http://r.mzstatic.com/images/spacer.gif" /&gt;&lt;/td&gt;
42
+ &lt;td width="95%"&gt;
43
+
44
+
45
+ &lt;b&gt;&lt;a href="http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2"&gt;NRJ Party Summer Edition - 2012&lt;/a&gt;&lt;/b&gt;&lt;br/&gt;
46
+
47
+
48
+
49
+
50
+
51
+ Various Artists
52
+
53
+ &lt;font size="2" face="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"&gt;
54
+
55
+ &lt;br/&gt;
56
+ &lt;b&gt;Genre:&lt;/b&gt; &lt;a href="http://itunes.apple.com/lu/genre/music-dance/id17?uo=2"&gt;Dance&lt;/a&gt;
57
+
58
+ &lt;br/&gt;
59
+ &lt;b&gt;Price:&lt;/b&gt; 9,99 €
60
+
61
+ &lt;br/&gt;
62
+ &lt;b&gt;Release Date:&lt;/b&gt; 29 June 2012
63
+
64
+ &lt;/font&gt;
65
+ &lt;/td&gt;
66
+ &lt;/tr&gt;
67
+ &lt;/table&gt;
68
+ &lt;/td&gt;
69
+ &lt;/tr&gt;
70
+ &lt;tr&gt;
71
+ &lt;td&gt;
72
+
73
+
74
+
75
+ &lt;font size="2" face="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"&gt; &amp;#169; ℗ 2012 541 / N.E.W.S.&lt;/font&gt;
76
+
77
+ &lt;/td&gt;
78
+ &lt;/tr&gt;
79
+ &lt;/table&gt;
80
+ </content>
81
+ </entry>
82
+ </feed>
@@ -6,4 +6,5 @@ stub_request(:get, "http://slashdot.org/").to_return(:status => 200, :body => Fi
6
6
  stub_request(:get, "http://example.org/feed.atom").to_return(:status => 200, :body => File.open(File.join(File.dirname(__FILE__), "fixtures", "atom.xml")).read, :headers => {})
7
7
  stub_request(:get, "http://api.flickr.com/services/feeds/photos_public.gne?format=rss_200&id=90313708@N00&lang=en-us").to_return(:status => 200, :body => File.open(File.join(File.dirname(__FILE__), "fixtures", "flickr_rss_200.xml")).read, :headers => {})
8
8
  stub_request(:get, "http://api.flickr.com/services/feeds/photos_public.gne?id=90313708@N00&lang=en-us&format=atom").to_return(:status => 200, :body => File.open(File.join(File.dirname(__FILE__), "fixtures", "flickr_atom.xml")).read, :headers => {})
9
- stub_request(:get, "http://api.flickr.com/services/feeds/geo/?id=90313708@N00&lang=en-us").to_return(:status => 200, :body => File.open(File.join(File.dirname(__FILE__), "fixtures", "flickr_geo.xml")).read, :headers => {})
9
+ stub_request(:get, "http://api.flickr.com/services/feeds/geo/?id=90313708@N00&lang=en-us").to_return(:status => 200, :body => File.open(File.join(File.dirname(__FILE__), "fixtures", "flickr_geo.xml")).read, :headers => {})
10
+ stub_request(:get, "http://example.org/feed.atom-html").to_return(:status => 200, :body => File.open(File.join(File.dirname(__FILE__), "fixtures", "atom_with_html.xml")).read, :headers => {})
@@ -27,6 +27,11 @@ describe Urss::Feed do
27
27
  subject.should respond_to(:entries)
28
28
  subject.should respond_to(:entries=)
29
29
  end
30
+
31
+ it "should have an attribute :author" do
32
+ subject.should respond_to(:author)
33
+ subject.should respond_to(:author=)
34
+ end
30
35
  end
31
36
 
32
37
  end
@@ -108,8 +108,8 @@ describe Urss do
108
108
  end
109
109
  end
110
110
  describe "author" do
111
- it "should be empty" do
112
- @first_parsed_rss.author.should be_empty
111
+ it "should be nil" do
112
+ @first_parsed_rss.author.should be_nil
113
113
  end
114
114
  end
115
115
  describe "categories" do
@@ -418,68 +418,209 @@ The difference between -- and : is huge for me [...]"""
418
418
  end
419
419
 
420
420
  context "Atom" do
421
- context "when parsing the atom.xml example file at http://example.org/feed.atom" do
422
- before { @parsed_rss = subject.at("http://example.org/feed.atom") }
423
- it "should return an instance of Urss::Feed::Atom" do
424
- @parsed_rss.should be_an_instance_of(Urss::Feed::Atom)
425
- end
426
- describe "Urss::Rss" do
427
- describe "title" do
428
- it "should return \"dive into mark\"" do
429
- @parsed_rss.title.should == "dive into mark"
430
- end
421
+ context "with xhtml entry content" do
422
+ context "when parsing the atom.xml example file at http://example.org/feed.atom" do
423
+ before { @parsed_rss = subject.at("http://example.org/feed.atom") }
424
+ it "should return an instance of Urss::Feed::Atom" do
425
+ @parsed_rss.should be_an_instance_of(Urss::Feed::Atom)
431
426
  end
432
- describe "url" do
433
- it "should return \"http://example.org/feed.atom\"" do
434
- @parsed_rss.url.should == "http://example.org/feed.atom"
427
+ describe "Urss::Rss" do
428
+ describe "title" do
429
+ it "should return \"dive into mark\"" do
430
+ @parsed_rss.title.should == "dive into mark"
431
+ end
435
432
  end
436
- end
437
- describe "description" do
438
- it "should return \"A emlot/em of effort\n went into making this effortless\"" do
439
- @parsed_rss.description.should == "A emlot/em of effort\n went into making this effortless"
433
+ describe "url" do
434
+ it "should return \"http://example.org/feed.atom\"" do
435
+ @parsed_rss.url.should == "http://example.org/feed.atom"
436
+ end
440
437
  end
441
- end
442
- describe "updated_at" do
443
- it "should return \"2005-07-31T12:29:29Z\"" do
444
- @parsed_rss.updated_at.should == "2005-07-31T12:29:29Z"
438
+ describe "description" do
439
+ it "should return \"A emlot/em of effort\n went into making this effortless\"" do
440
+ @parsed_rss.description.should == "A emlot/em of effort\n went into making this effortless"
441
+ end
445
442
  end
446
- end
447
- describe"entries" do
448
- describe "size" do
449
- it "should be 1" do
450
- @parsed_rss.entries.size.should be 1
443
+ describe "updated_at" do
444
+ it "should return \"2005-07-31T12:29:29Z\"" do
445
+ @parsed_rss.updated_at.should == "2005-07-31T12:29:29Z"
451
446
  end
452
447
  end
453
- describe "first" do
454
- before { @first_parsed_rss = @parsed_rss.entries.first }
455
- describe "title" do
456
- it "should return \"Atom draft-07 snapshot\"" do
457
- @first_parsed_rss.title.should == "Atom draft-07 snapshot"
448
+ describe "entries" do
449
+ describe "size" do
450
+ it "should be 1" do
451
+ @parsed_rss.entries.size.should be 1
458
452
  end
459
453
  end
460
- describe "url" do
461
- it "should return \"http://example.org/2005/04/02/atom\"" do
462
- @first_parsed_rss.url.should == "http://example.org/2005/04/02/atom"
454
+ describe "first" do
455
+ before { @first_parsed_rss = @parsed_rss.entries.first }
456
+ describe "title" do
457
+ it "should return \"Atom draft-07 snapshot\"" do
458
+ @first_parsed_rss.title.should == "Atom draft-07 snapshot"
459
+ end
463
460
  end
464
- end
465
- describe "comments_url" do
466
- it "should be empty" do
467
- @first_parsed_rss.comments_url.should be_nil
461
+ describe "url" do
462
+ it "should return \"http://example.org/2005/04/02/atom\"" do
463
+ @first_parsed_rss.url.should == "http://example.org/2005/04/02/atom"
464
+ end
468
465
  end
469
- end
470
- describe "created_at" do
471
- it "should return \"2003-12-13T08:29:29-04:00\"" do
472
- @first_parsed_rss.created_at.should == "2003-12-13T08:29:29-04:00"
466
+ describe "comments_url" do
467
+ it "should be nil" do
468
+ @first_parsed_rss.comments_url.should be_nil
469
+ end
470
+ end
471
+ describe "created_at" do
472
+ it "should return \"2003-12-13T08:29:29-04:00\"" do
473
+ @first_parsed_rss.created_at.should == "2003-12-13T08:29:29-04:00"
474
+ end
475
+ end
476
+ describe "author" do
477
+ it "should return \"Mark Pilgrim\"" do
478
+ @first_parsed_rss.author.should == "Mark Pilgrim"
479
+ end
480
+ end
481
+ describe "categories" do
482
+ it "should be empty" do
483
+ @first_parsed_rss.categories.should be_empty
484
+ end
485
+ end
486
+ describe "content" do
487
+ it "should return the HTML code of the content node without transformation" do
488
+ @first_parsed_rss.content.should ==
489
+ """
490
+ <div xmlns=\"http://www.w3.org/1999/xhtml\">
491
+ <p><i>[Update: The Atom draft is finished.]</i></p>
492
+ </div>
493
+ """
494
+ end
473
495
  end
474
496
  end
475
- describe "author" do
476
- it "should return \"Mark Pilgrim\"" do
477
- @first_parsed_rss.author.should == "Mark Pilgrim"
497
+ end
498
+ end
499
+ end
500
+ end
501
+ context "with html entry content" do
502
+ context "when parsing the atom_with_html.xml example file at http://example.org/feed.atom-html" do
503
+ before { @parsed_rss = subject.at("http://example.org/feed.atom-html") }
504
+ it "should return an instance of Urss::Feed::Atom" do
505
+ @parsed_rss.should be_an_instance_of(Urss::Feed::Atom)
506
+ end
507
+ describe "Urss::Rss" do
508
+ describe "title" do
509
+ it "should return \"iTunes Store: Top Albums\"" do
510
+ @parsed_rss.title.should == "iTunes Store: Top Albums"
511
+ end
512
+ end
513
+ describe "url" do
514
+ it "should return \"http://itunes.apple.com/lu/rss/topalbums/limit=10/xml\"" do
515
+ @parsed_rss.url.should == "http://itunes.apple.com/lu/rss/topalbums/limit=10/xml"
516
+ end
517
+ end
518
+ describe "description" do
519
+ it "should be empty" do
520
+ @parsed_rss.description.should be_empty
521
+ end
522
+ end
523
+ describe "updated_at" do
524
+ it "should return \"2012-08-20T10:51:05-07:00\"" do
525
+ @parsed_rss.updated_at.should == "2012-08-20T10:51:05-07:00"
526
+ end
527
+ end
528
+ describe "author" do
529
+ it "should return \"iTunes Store\"" do
530
+ @parsed_rss.author.should == "iTunes Store"
531
+ end
532
+ end
533
+ describe "entries" do
534
+ describe "size" do
535
+ it "should be 1" do
536
+ @parsed_rss.entries.size.should be 1
478
537
  end
479
538
  end
480
- describe "categories" do
481
- it "should be empty" do
482
- @first_parsed_rss.categories.should be_empty
539
+ describe "first" do
540
+ before { @first_parsed_rss = @parsed_rss.entries.first }
541
+ describe "title" do
542
+ it "should return \"NRJ Party Summer Edition - 2012 - Various Artists\"" do
543
+ @first_parsed_rss.title.should == "NRJ Party Summer Edition - 2012 - Various Artists"
544
+ end
545
+ end
546
+ describe "url" do
547
+ it "should return \"http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2\"" do
548
+ @first_parsed_rss.url.should == "http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2"
549
+ end
550
+ end
551
+ describe "comments_url" do
552
+ it "should be nil" do
553
+ @first_parsed_rss.comments_url.should be_nil
554
+ end
555
+ end
556
+ describe "created_at" do
557
+ it "should be empty" do
558
+ @first_parsed_rss.created_at.should be_empty
559
+ end
560
+ end
561
+ describe "author" do
562
+ it "should return \"iTunes Store\" (the feed author as there is no entry author)" do
563
+ @first_parsed_rss.author.should == "iTunes Store"
564
+ end
565
+ end
566
+ describe "categories" do
567
+ it "should be empty" do
568
+ @first_parsed_rss.categories.should be_empty
569
+ end
570
+ end
571
+ describe "content" do
572
+ it "should return the HTML code of the content node without transformation" do
573
+ @first_parsed_rss.content.should ==
574
+ """&lt;table border=\"0\" width=\"100%\"&gt;
575
+ &lt;tr&gt;
576
+ &lt;td&gt;
577
+ &lt;table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"&gt;
578
+ &lt;tr valign=\"top\" align=\"left\"&gt;
579
+
580
+ &lt;td align=\"center\" width=\"166\" valign=\"top\"&gt;
581
+ &lt;a href=\"http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2\"&gt;&lt;img border=\"0\" alt=\"NRJ Party Summer Edition - 2012artwork\" src=\"http://a1.mzstatic.com/us/r1000/085/Music/v4/81/12/01/811201e7-96da-4c95-4fc1-c85ac3e716b1/5414165055532.170x170-75.jpg\" /&gt;&lt;/a&gt;
582
+ &lt;/td&gt;
583
+ &lt;td width=\"10\"&gt;&lt;img alt=\"\" width=\"10\" height=\"1\" src=\"http://r.mzstatic.com/images/spacer.gif\" /&gt;&lt;/td&gt;
584
+ &lt;td width=\"95%\"&gt;
585
+
586
+
587
+ &lt;b&gt;&lt;a href=\"http://itunes.apple.com/lu/album/nrj-party-summer-edition-2012/id538385017?uo=2\"&gt;NRJ Party Summer Edition - 2012&lt;/a&gt;&lt;/b&gt;&lt;br/&gt;
588
+
589
+
590
+
591
+
592
+
593
+ Various Artists
594
+
595
+ &lt;font size=\"2\" face=\"Helvetica,Arial,Geneva,Swiss,SunSans-Regular\"&gt;
596
+
597
+ &lt;br/&gt;
598
+ &lt;b&gt;Genre:&lt;/b&gt; &lt;a href=\"http://itunes.apple.com/lu/genre/music-dance/id17?uo=2\"&gt;Dance&lt;/a&gt;
599
+
600
+ &lt;br/&gt;
601
+ &lt;b&gt;Price:&lt;/b&gt; 9,99 €
602
+
603
+ &lt;br/&gt;
604
+ &lt;b&gt;Release Date:&lt;/b&gt; 29 June 2012
605
+
606
+ &lt;/font&gt;
607
+ &lt;/td&gt;
608
+ &lt;/tr&gt;
609
+ &lt;/table&gt;
610
+ &lt;/td&gt;
611
+ &lt;/tr&gt;
612
+ &lt;tr&gt;
613
+ &lt;td&gt;
614
+
615
+
616
+
617
+ &lt;font size=\"2\" face=\"Helvetica,Arial,Geneva,Swiss,SunSans-Regular\"&gt; &amp;#169; ℗ 2012 541 / N.E.W.S.&lt;/font&gt;
618
+
619
+ &lt;/td&gt;
620
+ &lt;/tr&gt;
621
+ &lt;/table&gt;
622
+ """
623
+ end
483
624
  end
484
625
  end
485
626
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-24 00:00:00.000000000 Z
12
+ date: 2012-08-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -57,6 +57,7 @@ files:
57
57
  - lib/urss/version.rb
58
58
  - spec/spec_helper.rb
59
59
  - spec/support/fixtures/atom.xml
60
+ - spec/support/fixtures/atom_with_html.xml
60
61
  - spec/support/fixtures/flickr_atom.xml
61
62
  - spec/support/fixtures/flickr_geo.xml
62
63
  - spec/support/fixtures/flickr_rss_200.xml
@@ -93,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
94
  version: '0'
94
95
  segments:
95
96
  - 0
96
- hash: 4327753447225132504
97
+ hash: -4392561072410245503
97
98
  required_rubygems_version: !ruby/object:Gem::Requirement
98
99
  none: false
99
100
  requirements:
@@ -102,16 +103,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  version: '0'
103
104
  segments:
104
105
  - 0
105
- hash: 4327753447225132504
106
+ hash: -4392561072410245503
106
107
  requirements: []
107
108
  rubyforge_project:
108
- rubygems_version: 1.8.23
109
+ rubygems_version: 1.8.24
109
110
  signing_key:
110
111
  specification_version: 3
111
112
  summary: Ultra RSS is a Feed RSS parser.
112
113
  test_files:
113
114
  - spec/spec_helper.rb
114
115
  - spec/support/fixtures/atom.xml
116
+ - spec/support/fixtures/atom_with_html.xml
115
117
  - spec/support/fixtures/flickr_atom.xml
116
118
  - spec/support/fixtures/flickr_geo.xml
117
119
  - spec/support/fixtures/flickr_rss_200.xml