urss 0.0.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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