feed-abstract 0.0.4 → 0.0.5
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/Rakefile +28 -0
- data/feed-abstract.gemspec +79 -15
- data/lib/feed-abstract/feed.rb +12 -1
- data/lib/feed-abstract/version.rb +1 -1
- metadata +72 -6
data/Rakefile
CHANGED
@@ -1,2 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
require 'bundler'
|
4
|
+
require './lib/feed-abstract'
|
2
5
|
Bundler::GemHelper.install_tasks
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'jeweler'
|
9
|
+
Jeweler::Tasks.new do |s|
|
10
|
+
s.name = "feed-abstract"
|
11
|
+
s.version = FeedAbstract::VERSION
|
12
|
+
s.homepage = "https://github.com/berkmancenter/feed-abstract"
|
13
|
+
s.summary = %q{Abstracts RSS/Atom/RDF parsing features from the ruby standard lib into a common object graph.}
|
14
|
+
s.description = %q{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. }
|
15
|
+
s.authors = ["Daniel Collis-Puro"]
|
16
|
+
s.email = ["djcp@cyber.law.harvard.edu"]
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
s.add_development_dependency "rspec"
|
23
|
+
s.extra_rdoc_files = [
|
24
|
+
"README.rdoc"
|
25
|
+
]
|
26
|
+
end
|
27
|
+
rescue LoadError
|
28
|
+
puts "Jeweler, or one of its dependencies, is not available."
|
29
|
+
end
|
30
|
+
|
data/feed-abstract.gemspec
CHANGED
@@ -1,23 +1,87 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "feed-abstract/version"
|
4
5
|
|
5
6
|
Gem::Specification.new do |s|
|
6
|
-
s.name
|
7
|
-
s.version
|
8
|
-
|
9
|
-
s.
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.summary = %q{Abstracts RSS/Atom/RDF parsing features from the ruby standard lib into a common object graph.}
|
7
|
+
s.name = %q{feed-abstract}
|
8
|
+
s.version = "0.0.5"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Daniel Collis-Puro}]
|
12
|
+
s.date = %q{2011-09-07}
|
13
13
|
s.description = %q{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
|
-
s.
|
15
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
16
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
-
s.require_paths = ["lib"]
|
19
|
-
s.add_development_dependency "rspec", "2.6"
|
14
|
+
s.email = [%q{djcp@cyber.law.harvard.edu}]
|
20
15
|
s.extra_rdoc_files = [
|
21
16
|
"README.rdoc"
|
22
17
|
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"Gemfile",
|
21
|
+
"README.rdoc",
|
22
|
+
"Rakefile",
|
23
|
+
"feed-abstract.gemspec",
|
24
|
+
"lib/feed-abstract.rb",
|
25
|
+
"lib/feed-abstract/channel/atom.rb",
|
26
|
+
"lib/feed-abstract/channel/rdf.rb",
|
27
|
+
"lib/feed-abstract/channel/rss.rb",
|
28
|
+
"lib/feed-abstract/feed.rb",
|
29
|
+
"lib/feed-abstract/item/atom.rb",
|
30
|
+
"lib/feed-abstract/item/rdf.rb",
|
31
|
+
"lib/feed-abstract/item/rss.rb",
|
32
|
+
"lib/feed-abstract/items/atom.rb",
|
33
|
+
"lib/feed-abstract/items/rdf.rb",
|
34
|
+
"lib/feed-abstract/items/rss.rb",
|
35
|
+
"lib/feed-abstract/mixins.rb",
|
36
|
+
"lib/feed-abstract/version.rb",
|
37
|
+
"spec/feed_abstract_channel_spec.rb",
|
38
|
+
"spec/feed_abstract_item_spec.rb",
|
39
|
+
"spec/feed_abstract_spec.rb",
|
40
|
+
"spec/spec_helper.rb",
|
41
|
+
"spec/test_data/djcp.rss",
|
42
|
+
"spec/test_data/djcp.rss92",
|
43
|
+
"spec/test_data/djcp_code.rss",
|
44
|
+
"spec/test_data/djcp_delicious.rss",
|
45
|
+
"spec/test_data/doc.atom",
|
46
|
+
"spec/test_data/feedburner.rss",
|
47
|
+
"spec/test_data/katanapg.atom",
|
48
|
+
"spec/test_data/oa.africa.rss",
|
49
|
+
"spec/test_data/zotero.rss"
|
50
|
+
]
|
51
|
+
s.homepage = %q{https://github.com/berkmancenter/feed-abstract}
|
52
|
+
s.rdoc_options = [%q{--charset=UTF-8}]
|
53
|
+
s.require_paths = [%q{lib}]
|
54
|
+
s.rubygems_version = %q{1.8.6}
|
55
|
+
s.summary = %q{Abstracts RSS/Atom/RDF parsing features from the ruby standard lib into a common object graph.}
|
56
|
+
|
57
|
+
if s.respond_to? :specification_version then
|
58
|
+
s.specification_version = 3
|
59
|
+
|
60
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
61
|
+
s.add_runtime_dependency(%q<feed-abstract>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
63
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
64
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
65
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
66
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
67
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
68
|
+
else
|
69
|
+
s.add_dependency(%q<feed-abstract>, [">= 0"])
|
70
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
71
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
72
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
73
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
74
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
75
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
76
|
+
end
|
77
|
+
else
|
78
|
+
s.add_dependency(%q<feed-abstract>, [">= 0"])
|
79
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
80
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
81
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
82
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
83
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
84
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
85
|
+
end
|
23
86
|
end
|
87
|
+
|
data/lib/feed-abstract/feed.rb
CHANGED
@@ -25,7 +25,18 @@ module FeedAbstract
|
|
25
25
|
# You will most likely be using the <b>channel</b> and <b>items</b> attributes.
|
26
26
|
#
|
27
27
|
# === Notes
|
28
|
-
# If a feed can't be parsed, we'll throw a FeedAbstract::ParserError.
|
28
|
+
# * If a feed can't be parsed, we'll throw a FeedAbstract::ParserError.
|
29
|
+
# * All dates are returned as Time objects. You will need to convert if you're using ActiveRecord as it expects DateTime objects - fortunately this is very easy via the 'to_datetime' extension that ActiveRecord provides.
|
30
|
+
#
|
31
|
+
# feed = FeedAbstract::Feed.new(feed_xml_string)
|
32
|
+
# feed.items.each do |item|
|
33
|
+
# fi = FeedItem.new #Your feed item model.
|
34
|
+
# if item.updated.respond_to?(:to_datetime) #There's a date instead of an empty string
|
35
|
+
# fi.last_updated = item.updated.to_datetime # <<--- here!
|
36
|
+
# end
|
37
|
+
# #More happens. . .
|
38
|
+
# fi.save
|
39
|
+
# end
|
29
40
|
#
|
30
41
|
# == Examples
|
31
42
|
#
|
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.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,19 +9,85 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-07 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: feed-abstract
|
16
|
+
requirement: &84055580 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *84055580
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &84055280 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *84055280
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &84054980 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *84054980
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec
|
49
|
+
requirement: &84054710 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *84054710
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &84054440 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *84054440
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: &84054140 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *84054140
|
14
80
|
- !ruby/object:Gem::Dependency
|
15
81
|
name: rspec
|
16
|
-
requirement: &
|
82
|
+
requirement: &84053840 !ruby/object:Gem::Requirement
|
17
83
|
none: false
|
18
84
|
requirements:
|
19
|
-
- -
|
85
|
+
- - ! '>='
|
20
86
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
87
|
+
version: '0'
|
22
88
|
type: :development
|
23
89
|
prerelease: false
|
24
|
-
version_requirements: *
|
90
|
+
version_requirements: *84053840
|
25
91
|
description: ! 'This library creates a common object graph for the RSS/Atom/RDF parsing
|
26
92
|
classes in the ruby standard library. This allows you parse different feed formats
|
27
93
|
and get back the same (or at least a very similar) set of results - item authors
|