feed-abstract 0.0.12 → 0.0.13

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.rdoc CHANGED
@@ -8,7 +8,7 @@ FeedAbstract creates a common object graph for RSS, Atom, and RDF feeds using th
8
8
 
9
9
  == Usage
10
10
 
11
- See FeedAbstract::Feed for basic examples. Also see the FeedAbstract::Channel and FeedAbstract::Item namespaces.
11
+ See FeedAbstract::Feed for basic examples. Also see the FeedAbstract::Channel and FeedAbstract::Item namespaces. See also the rdoc at http://rubydoc.info/gems/feed-abstract/0.0.12/frames
12
12
 
13
13
  == Author
14
14
 
data/Rakefile CHANGED
@@ -29,7 +29,7 @@ end
29
29
 
30
30
  Jeweler::RubygemsDotOrgTasks.new
31
31
 
32
- require 'rake/rdoctask'
32
+ require 'rdoc/task'
33
33
  Rake::RDocTask.new do |rdoc|
34
34
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
35
35
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "feed-abstract"
8
- s.version = "0.0.12"
8
+ s.version = "0.0.13"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel Collis-Puro"]
12
- s.date = "2012-04-17"
12
+ s.date = "2012-08-17"
13
13
  s.description = "This library creates a common object graph for the RSS/Atom/RDF parsing classes in the ruby standard library. This allows you parse different feed formats and get back the same (or at least a very similar) set of results - item authors are accessible under an \"author(s)\" attribute, categories/tags/subjects are accessible under \"category(ies)\" attributes, etc. We do our best to make sure the data makes sense, too - RSS items lack an \"updated\" attribute, so we use \"pubDate\" to populate it. "
14
14
  s.email = ["djcp@cyber.law.harvard.edu"]
15
15
  s.extra_rdoc_files = [
@@ -57,8 +57,9 @@ Gem::Specification.new do |s|
57
57
  s.homepage = "https://github.com/berkmancenter/feed-abstract"
58
58
  s.rdoc_options = ["--charset=UTF-8"]
59
59
  s.require_paths = ["lib"]
60
- s.rubygems_version = "1.8.10"
60
+ s.rubygems_version = "1.8.24"
61
61
  s.summary = "Abstracts RSS/Atom/RDF stdlib parsing into a common object graph."
62
+ s.test_files = ["spec/feed_abstract_channel_spec.rb", "spec/feed_abstract_item_spec.rb", "spec/feed_abstract_spec.rb", "spec/spec_helper.rb", "spec/test_data/LawLibrarianBlog.atom", "spec/test_data/chillingeffects.xml", "spec/test_data/djcp.rss", "spec/test_data/djcp.rss92", "spec/test_data/djcp_code.rss", "spec/test_data/djcp_delicious.rss", "spec/test_data/djcp_twitter.rss", "spec/test_data/doc.atom", "spec/test_data/feedburner.rss", "spec/test_data/katanapg.atom", "spec/test_data/oa.africa.rss", "spec/test_data/pyblosxom.atom", "spec/test_data/twitter_hashtag.atom", "spec/test_data/zotero.rss"]
62
63
 
63
64
  if s.respond_to? :specification_version then
64
65
  s.specification_version = 3
data/lib/feed-abstract.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  $LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__))
4
4
 
5
5
  require 'rss'
6
- require 'iconv'
6
+ #require 'iconv'
7
7
 
8
8
  require 'rss_atom_monkeypatches'
9
9
 
@@ -70,16 +70,17 @@ module FeedAbstract
70
70
  input = (xml.respond_to?(:read)) ? xml.read : xml
71
71
 
72
72
  if options[:force_encoding]
73
- ic = Iconv.new(options[:output_encoding].upcase + ((options[:transliterate_characters]) ? '//TRANSLIT' : '') + '//IGNORE',options[:input_encoding].upcase)
74
73
  if input.respond_to?(:encoding)
75
74
  # ruby 1.9
76
75
  # Only transcode if the encoding isn't valid.
77
76
  # See: http://po-ru.com/diary/fixing-invalid-utf-8-in-ruby-revisited/ for why we're appending the extra space.
78
77
  unless (input.encoding.to_s.upcase == options[:output_encoding].upcase && input.valid_encoding?)
79
- input = ic.iconv(input << ' ')[0..-2]
78
+ input.encode!(options[:output_encoding], options[:input_encoding])
80
79
  end
81
80
  else
82
81
  # ruby 1.8
82
+ require 'iconv'
83
+ ic = Iconv.new(options[:output_encoding].upcase + ((options[:transliterate_characters]) ? '//TRANSLIT' : '') + '//IGNORE',options[:input_encoding].upcase)
83
84
  input = ic.iconv(input << ' ')[0..-2]
84
85
  end
85
86
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module FeedAbstract
4
- VERSION = "0.0.12"
4
+ VERSION = "0.0.13"
5
5
  end
@@ -244,7 +244,7 @@ module FeedAbstract
244
244
  @oa.channel.rights.should == 'Connotea 2011'
245
245
  @delicious.channel.rights.should == ''
246
246
  @zotero.channel.rights.should == ''
247
- @feedburner.channel.rights.should == ' 2011 Cable News Network LP, LLLP.'
247
+ @feedburner.channel.rights.should == '© 2011 Cable News Network LP, LLLP.'
248
248
  @pyblosxom.channel.rights.should == 'Creative Commons Attribution-ShareAlike'
249
249
  @chill.channel.rights.should == ''
250
250
  @twitter.channel.rights.should == ''
@@ -9,7 +9,7 @@ module FeedAbstract
9
9
  end
10
10
 
11
11
  it "should be able to instantiate" do
12
- Feed.respond_to?(:new).should == true
12
+ FeedAbstract::Feed.respond_to?(:new).should == true
13
13
  end
14
14
 
15
15
  it "should recognize atom feeds properly" do
@@ -36,6 +36,14 @@ module FeedAbstract
36
36
  end
37
37
  end
38
38
 
39
+ it "should throw a parser error on a bad feed" do
40
+ begin
41
+ f = FeedAbstract::Feed.new('asdfasdf')
42
+ rescue Exception => e
43
+ e.class.should == FeedAbstract::ParserError
44
+ end
45
+ end
46
+
39
47
  end
40
48
 
41
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feed-abstract
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-17 00:00:00.000000000 Z
12
+ date: 2012-08-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &16962420 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *16962420
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rdoc
27
- requirement: &16959840 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *16959840
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: bundler
38
- requirement: &16174820 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *16174820
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: jeweler
49
- requirement: &16172960 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *16172960
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: simplecov
60
- requirement: &16170480 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,7 +85,12 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *16170480
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  description: ! 'This library creates a common object graph for the RSS/Atom/RDF parsing
70
95
  classes in the ruby standard library. This allows you parse different feed formats
71
96
  and get back the same (or at least a very similar) set of results - item authors
@@ -130,6 +155,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
155
  - - ! '>='
131
156
  - !ruby/object:Gem::Version
132
157
  version: '0'
158
+ segments:
159
+ - 0
160
+ hash: 4541523730071053773
133
161
  required_rubygems_version: !ruby/object:Gem::Requirement
134
162
  none: false
135
163
  requirements:
@@ -138,8 +166,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
166
  version: '0'
139
167
  requirements: []
140
168
  rubyforge_project:
141
- rubygems_version: 1.8.10
169
+ rubygems_version: 1.8.24
142
170
  signing_key:
143
171
  specification_version: 3
144
172
  summary: Abstracts RSS/Atom/RDF stdlib parsing into a common object graph.
145
- test_files: []
173
+ test_files:
174
+ - spec/feed_abstract_channel_spec.rb
175
+ - spec/feed_abstract_item_spec.rb
176
+ - spec/feed_abstract_spec.rb
177
+ - spec/spec_helper.rb
178
+ - spec/test_data/LawLibrarianBlog.atom
179
+ - spec/test_data/chillingeffects.xml
180
+ - spec/test_data/djcp.rss
181
+ - spec/test_data/djcp.rss92
182
+ - spec/test_data/djcp_code.rss
183
+ - spec/test_data/djcp_delicious.rss
184
+ - spec/test_data/djcp_twitter.rss
185
+ - spec/test_data/doc.atom
186
+ - spec/test_data/feedburner.rss
187
+ - spec/test_data/katanapg.atom
188
+ - spec/test_data/oa.africa.rss
189
+ - spec/test_data/pyblosxom.atom
190
+ - spec/test_data/twitter_hashtag.atom
191
+ - spec/test_data/zotero.rss