feed-abstract 0.0.10 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: aa6ed71d4c69fce0113439a19e3b404bee76e11d
4
+ data.tar.gz: ffc54c285c14a3bc0bb6226964642dde96671d07
5
+ SHA512:
6
+ metadata.gz: 6846cb502e8f33d1863ff386d4f419adae8de96500948575304570f10ff8d5448577a8d970601be32256a8d3f04f724556af5ed4a68cb9ddd661ebf8231990a2
7
+ data.tar.gz: eaf6be3194c2d770a5e86b846059086d67e9a17689f1817917d4654f2dafd07acb8f516061143453c8a3dff42a3f5092e706c2770f635c99b113f87da5e127ea
data/.gitignore CHANGED
@@ -4,3 +4,4 @@ pkg/*
4
4
  Gemfile.lock
5
5
  *.swp
6
6
  .rvmrc
7
+ coverage/
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
 
@@ -2,14 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: feed-abstract 0.0.16 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "feed-abstract"
8
- s.version = "0.0.10"
9
+ s.version = "0.0.16"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Daniel Collis-Puro"]
12
- s.date = "2012-02-19"
14
+ s.date = "2017-04-25"
13
15
  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
16
  s.email = ["djcp@cyber.law.harvard.edu"]
15
17
  s.extra_rdoc_files = [
@@ -34,10 +36,12 @@ Gem::Specification.new do |s|
34
36
  "lib/feed-abstract/items/rss.rb",
35
37
  "lib/feed-abstract/mixins.rb",
36
38
  "lib/feed-abstract/version.rb",
39
+ "lib/rss_atom_monkeypatches.rb",
37
40
  "spec/feed_abstract_channel_spec.rb",
38
41
  "spec/feed_abstract_item_spec.rb",
39
42
  "spec/feed_abstract_spec.rb",
40
43
  "spec/spec_helper.rb",
44
+ "spec/test_data/LawLibrarianBlog.atom",
41
45
  "spec/test_data/chillingeffects.xml",
42
46
  "spec/test_data/djcp.rss",
43
47
  "spec/test_data/djcp.rss92",
@@ -49,16 +53,16 @@ Gem::Specification.new do |s|
49
53
  "spec/test_data/katanapg.atom",
50
54
  "spec/test_data/oa.africa.rss",
51
55
  "spec/test_data/pyblosxom.atom",
56
+ "spec/test_data/twitter_hashtag.atom",
52
57
  "spec/test_data/zotero.rss"
53
58
  ]
54
59
  s.homepage = "https://github.com/berkmancenter/feed-abstract"
55
60
  s.rdoc_options = ["--charset=UTF-8"]
56
- s.require_paths = ["lib"]
57
- s.rubygems_version = "1.8.10"
61
+ s.rubygems_version = "2.4.5.2"
58
62
  s.summary = "Abstracts RSS/Atom/RDF stdlib parsing into a common object graph."
59
63
 
60
64
  if s.respond_to? :specification_version then
61
- s.specification_version = 3
65
+ s.specification_version = 4
62
66
 
63
67
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
68
  s.add_development_dependency(%q<rspec>, [">= 0"])
@@ -81,4 +85,3 @@ Gem::Specification.new do |s|
81
85
  s.add_dependency(%q<simplecov>, [">= 0"])
82
86
  end
83
87
  end
84
-
data/lib/feed-abstract.rb CHANGED
@@ -3,9 +3,11 @@
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
- require "feed-abstract/version"
8
+ require 'rss_atom_monkeypatches'
9
+
10
+ require 'feed-abstract/version'
9
11
  require 'feed-abstract/mixins'
10
12
 
11
13
  require 'feed-abstract/channel/atom'
@@ -21,15 +21,21 @@ module FeedAbstract
21
21
  end
22
22
 
23
23
  def description
24
- return '' if @feed.subtitle.nil?
25
- @feed.subtitle.content
24
+ return '' if @feed.subtitle.nil? && @feed.tagline.nil?
25
+ (@feed.subtitle.nil?) ? @feed.tagline.content : @feed.subtitle.content
26
26
  end
27
27
  alias :subtitle :description
28
28
 
29
29
  # A string representing the application that created this feed.
30
30
  def generator
31
- if self.link.match(/zotero\.org/)
32
- return 'Zotero'
31
+ unless self.link.nil?
32
+ if self.link.match(/zotero\.org/)
33
+ return 'Zotero'
34
+ elsif self.link.match(/wordpress\.com/)
35
+ return 'WordPress'
36
+ elsif self.link.match(/https?:\/\/.*\.?twitter\.com/i)
37
+ return 'Twitter'
38
+ end
33
39
  end
34
40
  return '' if @feed.generator.nil?
35
41
  @feed.generator.content
@@ -28,9 +28,9 @@ module FeedAbstract
28
28
  def generator
29
29
  if ! @feed.channel.generator.nil? && @feed.channel.generator.match(/wordpress\.org/i)
30
30
  return 'WordPress'
31
- elsif @feed.channel.link.match(/www\.delicious\.com/i)
31
+ elsif ! @feed.channel.link.nil? && @feed.channel.link.match(/www\.delicious\.com/i)
32
32
  return 'Delicious'
33
- elsif @feed.channel.link.match(/https?:\/\/twitter\.com/i)
33
+ elsif ! @feed.channel.link.nil? && @feed.channel.link.match(/https?:\/\/.*\.?twitter\.com/i)
34
34
  return 'Twitter'
35
35
  end
36
36
  return '' if @feed.channel.generator.nil?
@@ -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
@@ -34,14 +34,17 @@ module FeedAbstract
34
34
  end
35
35
 
36
36
  def summary
37
+ if self.channel.generator == 'Twitter'
38
+ return self.title
39
+ end
37
40
  return '' if @item.summary.nil?
38
41
  @item.summary.content
39
42
  end
40
43
 
41
44
  # A Time object
42
45
  def published
43
- return '' if @item.published.nil?
44
- @item.published.content
46
+ return '' if @item.published.nil? && @item.created.nil?
47
+ (@item.published.nil?) ? @item.created.content : @item.published.content
45
48
  end
46
49
 
47
50
  end
@@ -25,8 +25,8 @@ module FeedAbstractMixins
25
25
 
26
26
  # A Time object representing when resource was updated.
27
27
  def updated
28
- return '' if @source.updated.nil?
29
- @source.updated.content
28
+ return '' if @source.updated.nil? && @source.modified.nil?
29
+ (@source.updated.nil?) ? @source.modified.content : @source.updated.content
30
30
  end
31
31
 
32
32
  # Copyright info.
@@ -37,6 +37,9 @@ module FeedAbstractMixins
37
37
 
38
38
  # An array of author names
39
39
  def authors
40
+ if self.respond_to?(:channel) && self.channel.generator == 'Twitter'
41
+ return [@source.author.name.content.split(' ')[0]]
42
+ end
40
43
  return [] if @source.authors.empty?
41
44
  @source.authors.collect{|au| au.name.content}.reject{|au| au == '' || au.match(/^\s+$/)}
42
45
  end
@@ -49,8 +52,15 @@ module FeedAbstractMixins
49
52
 
50
53
  # The categories list as an array.
51
54
  def categories
52
- return [] if @source.categories.empty?
53
- @source.categories.collect{|c| c.term}.reject{|c| c == '' || c.match(/^\s+$/)}
55
+ if self.respond_to?(:channel) && self.channel.generator == 'Twitter'
56
+ return @source.title.content.scan(/#([^#\s]+)/).flatten
57
+ end
58
+ return [] if @source.categories.empty? && @source.dc_subjects.empty?
59
+ tmp_cats = []
60
+ tmp_cats << @source.categories.collect{|c| c.term}
61
+ tmp_cats << @source.dc_subjects.collect{|c| c.content}
62
+
63
+ tmp_cats.flatten.reject{|c| c == '' || c.match(/^\s+$/)}
54
64
  end
55
65
 
56
66
  # The categories list as a string joined with a comma.
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module FeedAbstract
4
- VERSION = "0.0.10"
4
+ VERSION = "0.0.16"
5
5
  end
@@ -0,0 +1,28 @@
1
+ module RSS
2
+ module Atom
3
+ class Feed
4
+ class Modified < RSS::Element
5
+ include CommonModel
6
+ include DateConstruct
7
+ end
8
+ class Created < RSS::Element
9
+ include CommonModel
10
+ include DateConstruct
11
+ end
12
+ class Tagline < RSS::Element
13
+ include CommonModel
14
+ include TextConstruct
15
+ end
16
+ install_get_attribute('created', '?', :child, :content)
17
+ install_get_attribute('modified', '?', :child, :content)
18
+ install_get_attribute('tagline', nil, nil, :content)
19
+
20
+ class Entry
21
+ install_get_attribute('created', '?', :child, :content)
22
+ install_get_attribute('modified', '?', :child, :content)
23
+ Modified = RSS::Atom::Feed::Modified
24
+ Created = RSS::Atom::Feed::Created
25
+ end
26
+ end
27
+ end
28
+ end
@@ -20,6 +20,8 @@ module FeedAbstract
20
20
  it { @pyblosxom.channel.should respond_to att}
21
21
  it { @chill.channel.should respond_to att}
22
22
  it { @twitter.channel.should respond_to att}
23
+ it { @twitter_atom.channel.should respond_to att}
24
+ it { @feedburner_atom.channel.should respond_to att}
23
25
 
24
26
  it { @docatom.channel.send(att).should_not == false}
25
27
  it { @kpgatom.channel.send(att).should_not == false}
@@ -32,6 +34,8 @@ module FeedAbstract
32
34
  it { @pyblosxom.channel.send(att).should_not == false}
33
35
  it { @chill.channel.send(att).should_not == false}
34
36
  it { @twitter.channel.send(att).should_not == false}
37
+ it { @twitter_atom.channel.send(att).should_not == false}
38
+ it { @feedburner_atom.channel.send(att).should_not == false}
35
39
  end
36
40
 
37
41
  it "should have the correct title" do
@@ -46,6 +50,8 @@ module FeedAbstract
46
50
  @pyblosxom.channel.title.should == 'Copyrighteous'
47
51
  @chill.channel.title.should == 'Chilling Effects Clearinghouse Weather Reports'
48
52
  @twitter.channel.title.should == 'Twitter / djcp'
53
+ @twitter_atom.channel.title.should == '#rails - Twitter Search'
54
+ @feedburner_atom.channel.title.should == 'Law Librarian Blog'
49
55
  end
50
56
 
51
57
  it "should have the correct subtitle and description" do
@@ -81,6 +87,12 @@ module FeedAbstract
81
87
 
82
88
  @twitter.channel.description.should == 'Twitter updates from Daniel Collis Puro / djcp.'
83
89
  @twitter.channel.subtitle.should == 'Twitter updates from Daniel Collis Puro / djcp.'
90
+
91
+ @twitter_atom.channel.description.should == ''
92
+ @twitter_atom.channel.subtitle.should == ''
93
+
94
+ @feedburner_atom.channel.description.should == 'A Member of the Law Professor Blogs Network'
95
+ @feedburner_atom.channel.subtitle.should == 'A Member of the Law Professor Blogs Network'
84
96
  end
85
97
 
86
98
  it "should have the correct link" do
@@ -95,6 +107,8 @@ module FeedAbstract
95
107
  @pyblosxom.channel.link.should == 'http://mako.cc/copyrighteous'
96
108
  @chill.channel.link.should == 'http://www.chillingeffects.org'
97
109
  @twitter.channel.link.should == 'http://twitter.com/djcp'
110
+ @twitter_atom.channel.link.should == 'http://search.twitter.com/search?q=%23rails'
111
+ @feedburner_atom.channel.link.should == 'http://lawprofessors.typepad.com/law_librarian_blog/'
98
112
  end
99
113
 
100
114
  it "should have the correct generator" do
@@ -109,6 +123,8 @@ module FeedAbstract
109
123
  @pyblosxom.channel.generator.should == "\nPyBlosxom http://pyblosxom.sourceforge.net/ 1.5rc2 20100803\n"
110
124
  @chill.channel.generator.should == ''
111
125
  @twitter.channel.generator.should == 'Twitter'
126
+ @twitter_atom.channel.generator.should == 'Twitter'
127
+ @feedburner_atom.channel.generator.should == 'TypePad'
112
128
  end
113
129
 
114
130
  it "should have the correct language" do
@@ -123,6 +139,8 @@ module FeedAbstract
123
139
  @pyblosxom.channel.language.should == 'en'
124
140
  @chill.channel.language.should == 'en-us'
125
141
  @twitter.channel.language.should == 'en-us'
142
+ @twitter_atom.channel.language.should == 'en-US'
143
+ @feedburner_atom.channel.language.should == ''
126
144
  end
127
145
 
128
146
  it "should have the correct authors" do
@@ -137,6 +155,8 @@ module FeedAbstract
137
155
  @pyblosxom.channel.authors.should == ['Benjamin Mako Hill']
138
156
  @chill.channel.authors.should == ['Wendy Seltzer, wseltzer@chillingeffects.org']
139
157
  @twitter.channel.authors.should == []
158
+ @twitter_atom.channel.authors.should == []
159
+ @feedburner_atom.channel.authors.should == []
140
160
 
141
161
  @docatom.channel.author.should == 'Doc Searls'
142
162
  @kpgatom.channel.author.should == 'Nick Pappas'
@@ -149,6 +169,8 @@ module FeedAbstract
149
169
  @pyblosxom.channel.author.should == 'Benjamin Mako Hill'
150
170
  @chill.channel.author.should == 'Wendy Seltzer, wseltzer@chillingeffects.org'
151
171
  @twitter.channel.author.should == ''
172
+ @twitter_atom.channel.author.should == ''
173
+ @feedburner_atom.channel.author.should == ''
152
174
 
153
175
  end
154
176
 
@@ -164,6 +186,8 @@ module FeedAbstract
164
186
  @pyblosxom.channel.categories.should == []
165
187
  @chill.channel.categories.should == ['Your rights online']
166
188
  @twitter.channel.categories.should == []
189
+ @twitter_atom.channel.categories.should == []
190
+ @feedburner_atom.channel.categories.should == []
167
191
 
168
192
  @docatom.channel.category.should == ''
169
193
  @kpgatom.channel.category.should == 'photos'
@@ -176,6 +200,8 @@ module FeedAbstract
176
200
  @pyblosxom.channel.category.should == ''
177
201
  @chill.channel.category.should == 'Your rights online'
178
202
  @twitter.channel.category.should == ''
203
+ @twitter_atom.channel.category.should == ''
204
+ @feedburner_atom.channel.category.should == ''
179
205
  end
180
206
 
181
207
  it "should have the correct icon" do
@@ -190,6 +216,8 @@ module FeedAbstract
190
216
  @pyblosxom.channel.icon.should == ''
191
217
  @chill.channel.icon.should == 'http://images.chillingeffects.org/chilling_effects.gif'
192
218
  @twitter.channel.icon.should == ''
219
+ @twitter_atom.channel.icon.should == ''
220
+ @feedburner_atom.channel.icon.should == ''
193
221
  end
194
222
 
195
223
  it "should have the correct logo" do
@@ -204,6 +232,8 @@ module FeedAbstract
204
232
  @pyblosxom.channel.logo.should == ''
205
233
  @chill.channel.logo.should == 'http://images.chillingeffects.org/chilling_effects.gif'
206
234
  @twitter.channel.logo.should == ''
235
+ @twitter_atom.channel.logo.should == ''
236
+ @feedburner_atom.channel.logo.should == ''
207
237
  end
208
238
 
209
239
  it "should have the correct rights" do
@@ -214,10 +244,12 @@ module FeedAbstract
214
244
  @oa.channel.rights.should == 'Connotea 2011'
215
245
  @delicious.channel.rights.should == ''
216
246
  @zotero.channel.rights.should == ''
217
- @feedburner.channel.rights.should == ' 2011 Cable News Network LP, LLLP.'
247
+ @feedburner.channel.rights.should == '© 2011 Cable News Network LP, LLLP.'
218
248
  @pyblosxom.channel.rights.should == 'Creative Commons Attribution-ShareAlike'
219
249
  @chill.channel.rights.should == ''
220
250
  @twitter.channel.rights.should == ''
251
+ @twitter_atom.channel.rights.should == ''
252
+ @feedburner_atom.channel.rights.should == ''
221
253
  end
222
254
 
223
255
  it "should have the correct updated value" do
@@ -232,6 +264,8 @@ module FeedAbstract
232
264
  @pyblosxom.channel.updated.should == Time.parse('2011-09-15T05:21:00Z')
233
265
  @chill.channel.updated.should == Time.parse('2002-02-25T12:00+00:00')
234
266
  @twitter.channel.updated.should == ''
267
+ @twitter_atom.channel.updated.should == Time.parse('2012-03-19 21:56:03 UTC')
268
+ @feedburner_atom.channel.updated.should == Time.parse('2012-04-16 16:25:05 UTC')
235
269
  end
236
270
 
237
271
  it "should have the correct guid" do
@@ -246,6 +280,8 @@ module FeedAbstract
246
280
  @pyblosxom.channel.guid.should == 'http://mako.cc/copyrighteous/'
247
281
  @chill.channel.guid.should == 'http://www.chillingeffects.org'
248
282
  @twitter.channel.guid.should == 'http://twitter.com/djcp'
283
+ @twitter_atom.channel.guid.should == 'tag:search.twitter.com,2005:search/#rails'
284
+ @feedburner_atom.channel.guid.should == 'tag:typepad.com,2003:weblog-93063'
249
285
  end
250
286
  end
251
287
  end
@@ -33,6 +33,8 @@ module FeedAbstract
33
33
  @pyblosxomitem.title.should == "Anxiety\n"
34
34
  @chillitem.title.should == "Takedown Complaints in the Android Marketplace"
35
35
  @twitteritem.title.should == "djcp: @csoghoian @BrookingsInst and the clipboard as well, presumably. #security #keylogging"
36
+ @twitteratomitem.title.should == "Senior #Ruby on #Rails developer(s) http://t.co/rvqsIK0h #jobs"
37
+ @feedburner_atom_item.title.should == "Google's Latest CAPTCHA Codes Draws Criticism"
36
38
 
37
39
  end
38
40
 
@@ -53,6 +55,8 @@ module FeedAbstract
53
55
  @chillitem.summary.should == %Q$<br>\n<img src=\"//images.chillingeffects.org/thermometer.gif\" alt=\"thermometer\" width=\"35\" height=\"120\"align=left> <h2>Takedown Complaints in the Android Marketplace</h2><p>Wendy Seltzer, <i>Chilling Effects Clearinghouse</i>, March 3, 2011\n<p><i>Abstract:</i> Earlier this year, Google began sending to Chilling Effects the requests it received for takedown from the Android Marketplace. Since this represents a new source of data, we take a look at the first month's input, February 2011.<hr size=1>\n<p><hr size=1 width=\"75%\"><p>Since Apple launched its iPhone App Store, applications marketplaces have popped up with increasing prominence. Google, unlike Apple<a href=\"#note1\" name=\"back\">*</a>, does not lock Android users into purchasing from its <a href=\"https://market.android.com/\">Android Market</a>, but it does make that marketplace a convenient place to find Android applications (<a href=\"http://mashable.com/2010/10/25/android-100000-apps/\">passing 100,000 apps</a> late last year). <br><p><br>In February, Chilling Effects <a href=\"https://www.chillingeffects.org/search.cgi?search=Android\">saw</a> 206 complaints to Google regarding Android Market apps, almost evenly split between trademark and copyright.<a href=\"#note2\" name=\"back2\">*</a> Because the Android Market offers commercial transactions, its context differs somewhat from the search and blog hosting in which DMCA -- copyright -- complaints predominate. At the same time, many apps are offered free of charge.<p><br><img src=\"https://chart.googleapis.com/chart?cht=pc&chtt=Complaint+Subjects+to+Android+Market+(Feb+2011)&chs=750x400&chd=t:111,97,3|0.59,0.31,0.05,0.03,0.02,0.02,0.02,0.38,0.11,0.1,0.07,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.22&chl=[TM]|[C]||Trademark%20%20(59)|Facebook%20Trademark%20%20(31)|Bank%20Trademark%20%20(5)|SXSW%20Trademark%20%20(3)|Trademarks%20and%20Videos%20Copyright%20%20(2)|Game%20Trademark%20%20(2)|Disney%20Trademark%20and%20Copyright%20%20(2)|Game%20Copyright%20%20(38)|Software%20Copyright%20%20(11)|Logo%20Copyright%20%20(10)|Copyright%20%20(7)|Books%20Copyright%20%20(3)|Images%20Copyright%20%20(3)|Articles%20Copyright%20%20(2)|Television%20Copyright%20%20(2)|UFC%20Copyright%20%20(2)|Photo%20Copyright%20%20(1)|Website%20Copyright%20%20(1)|Other/Unidentified%20(22)&chco=0000FF,003333&chp=3.14\" title=\"Complaint Subjects to Google's Android Market, Feb. 2011\"><p>Slightly more than half of the complaints here claim trademark infringement: misleading use of a mark (word or logo) to cause consumer confusion about the application's source or sponsorship. Facebook led the way, challenging 30+ apps that borrowed its name or \"f\" logo (e.g. <a href=\"/trademark/notice.cgi?NoticeID=56735\">Facebook Trademark Complaint to Google: Android Market</a>). Banks and financial institutions challenged applications that used their logos, even to offer a mobile version of the bank's own site. Here is trademark as the law of consumer protection: you want to be sure an unauthorized Wells Fargo application won't channel your deposit into its coffers rather than your savings account. Google even filed several complaints against apps in its marketplace that were a bit too free with the Google name. Starbucks used copyright in its logo to similar end, requesting takedown or alteration of apps that used the coffee company's logo as their icon (e.g. <a href=\"/dmca512c/notice.cgi?NoticeID=60149\">Logo DMCA (Copyright) Complaint to Google: Android Market</a>). Some, including <a href=\"https://market.android.com/details?id=com.birbeck.starbuckscard\">My Coffee Card</a> (formerly Starbucks Card Widget) changed their name and icon in response.<p>Sometimes, these complaints didn't do much to allege \"likelihood of consumer confusion,\" the traditional hallmark of trademark infringement. South By SouthWest's complaint against the \"Unauthorized SXSW\" party scheduler app -- <a href=\"/trademark/notice.cgi?NoticeID=60951\">SXSW Trademark Complaint to Google: Android Market</a> -- sounds like an overstep, into nominative fair use. There's no good alternative way to refer to the big conference/music festival in Austin later in March, and \"unauthorized\" plainly indicates it's not an officially endorsed product. (Neither Unofficial SXSW nor the official \"SXSW&reg; GO\" gets particularly high marks from reviewers yet, but that may be because the event hasn't yet kicked off to fill them with data.)<p>Another 82 complaints (less 11 \"logo\" complaints) alleged copyright infringement -- copying of code, of graphical elements or \"look and feel\" (Nintendo complained about many \"Super Mario\" derivatives), of characters (Columbia's \"Qbert\"), or of audiovisual elements including video clips, wallpapers, and eBooks. Most of these were phrased in DMCA terms, since like a blog platform, the marketplace hosts \"information residing on systems or networks at direction of users\" <a href=\"http://static.chillingeffects.org/512.html#c\">512(c)</a>. <p>Unique among the copyright complaints in its indirection, the RIAA filed three complaints naming dozens of apps that allegedly \"facilitate the unauthorized streaming and downloading of popular sound recordings, the vast majority of which are owned or controlled by RIAA members.\" Its <a href=\"/dmca512c/notice.cgi?NoticeID=61677\">complaints</a>, complete with screenshots, asked for the removal of apps for ringtone creation and MP3 listening. This is an attenuated claim. RIAA isn't alleging that Google, or even the apps, are direct infringers of member copyrights. Rather, it claims that because Google hosts apps (or in some cases, serves ads inside them) that enable end-users to make infringing copies of music, Google should be held responsible for the users' infringing conduct -- a sort of once-removed contributory or vicarious liability claim. Is there a law of contributory inducement, after <a href=\"http://w2.eff.org/IP/P2P/MGM_v_Grokster/\">Grokster</a>? <p><br>I haven't followed all of the URLs to see how Google has responded to each of these complaints, but to its credit, it does not appear to have pulled the \"Unauthorized SXSW,\" for example. Others accused of trademark infringement appear to have changed their names or logos. Because the <a href=\"https://www.chillingeffects.org/dmca512/faq\">DMCA</a> applies only to copyright, not trademark, there is less settled procedure around the trademark claims. There's no safe-harbor, but neither is there an assumption that the service provider will be liable for its users' activity (see <a href=\"http://www.eff.org/deeplinks/2010/04/tiffany-v-ebay-what-about-put-back\">Tiffany v. eBay</a>, where the Second Circuit Court of Appeals held that \"for contributory trademark infringement liability to lie, a service provider must have more than a general knowledge or reason to know that its service is being used to sell counterfeit goods.\"). <p><br><img src=\"https://chart.googleapis.com/chart?cht=p&chtt=Complaint+Senders+to+Android+Market+(Feb+2011)&chs=750x400&chd=t:0.3,0.2,0.08,0.06,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,1.09&chl=Facebook,%20Inc.%20(30)|Nintendo%20of%20America%20Inc.%20(20)|Google%20Inc.%20(8)|Starbucks%20Corporation%20(6)|Hatched%20Games%20(4)|RIAA%20(3)|Photo%20Hunt%20(3)|Atari,%20Inc.%20(3)|ESPN%20Inc.%20(3)|Playboy%20Enterprises%20International,%20Inc.%20(2)|Electronic%20Arts%20Inc.%20(2)|The%20Walt%20Disney%20Company%20(2)|Monotype%20Imaging%20Inc.%20(2)|Kodansha%20Ltd.%20(2)|Metro,%20a%20division%20of%20Associated%20Newspapers%20Limited%20(2)|Dorna%20Sports%20(2)|Justin.tv,%20Inc.%20(2)|Rocket%20Radar%20(2)|eBay%20Inc.%20(2)|Promevo,%20LLC%20(2)|Other/Unidentified%20(109)&chco=0000FF&chp=3.14\" title=\"Takedown Senders\"><p><a name=\"note1\" href=\"#back\">*</a> Copyright geeks will recall that the last <a href=\"http://www.loc.gov/today/pr/2010/10-169.html\">anticircumvention rulemaking</a> exempted phone jailbreaking from the circumvention rule, so iPhone owners can confidently unlock their phones to use the <a href=\"http://cydia.saurik.com/\">cydia</a> marketplace or others.<br><a name=\"note2\" href=\"#back2\">*</a> Note that this is a simple count of distinct complaint submissions, each of which may target one or multiple allegedly infringing applications. $
54
56
 
55
57
  @twitteritem.summary.should == "djcp: @csoghoian @BrookingsInst and the clipboard as well, presumably. #security #keylogging"
58
+ @twitteratomitem.summary.should == 'Senior #Ruby on #Rails developer(s) http://t.co/rvqsIK0h #jobs'
59
+ @feedburner_atom_item.summary.should == 'Here’s a little bit more from the technology front. Google has been accused of another privacy violation. Any tech company that owns a user base numbering in the billions can make a move that draws criticism. Sometimes that criticism is...'
56
60
  end
57
61
 
58
62
  it "should have the correct content" do
@@ -105,6 +109,9 @@ module FeedAbstract
105
109
  @pyblosxomitem.content.should == %Q|<div><a href='http://www.flickr.com/photos/nffcnnr/401047557/' target='_blank'><img src='http://farm1.static.flickr.com/137/401047557_1dda26e16f.jpg' width=350 alt='MailBoxes by nffcnnr, on Flickr' title='MailBoxes by nffcnnr, on Flickr' border='0'/></a><br/><a href='http://creativecommons.org/licenses/by/2.0/' target='_blank'><img src='http://i.creativecommons.org/l/by/2.0/80x15.png' alt='Creative Commons Attribution 2.0 Generic License' title='Creative Commons Attribution 2.0 Generic License' border='0' align='left'></a>&nbsp;&nbsp;by&nbsp;<a href='http://www.flickr.com/people/nffcnnr/' target='_blank'>&nbsp;nffcnnr</a><a href='http://www.imagecodr.org/' target='_blank'>&nbsp;</a></div><p>I am haunted by the nagging fear that I have mailboxes, tucked into a\ndark corner of an office somewhere, and perhaps even full of checks\nand important documents, that I don't know exist.</p>\n|
106
110
  @chillitem.content.should == ''
107
111
  @twitteritem.content.should == ""
112
+ @twitteratomitem.content.should == %Q|Senior <a href="http://search.twitter.com/search?q=%23Ruby" title="#Ruby" class=" ">#Ruby</a> on <em><a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" ">#Rails</a></em> developer(s) <a href="http://t.co/rvqsIK0h">http://t.co/rvqsIK0h</a> <a href="http://search.twitter.com/search?q=%23jobs" title="#jobs" class=" ">#jobs</a>|
113
+
114
+ @feedburner_atom_item.content.should == ''
108
115
  end
109
116
 
110
117
  it "should have the correct link" do
@@ -118,6 +125,8 @@ module FeedAbstract
118
125
  @pyblosxomitem.link.should == 'http://mako.cc/copyrighteous/20110913-00'
119
126
  @chillitem.link.should == 'https://www.chillingeffects.org/weather.cgi?WeatherID=648'
120
127
  @twitteritem.link.should == 'http://twitter.com/djcp/statuses/168381896559046656'
128
+ @twitteratomitem.link.should == 'http://twitter.com/pelaphptutor/statuses/181861618911690752'
129
+ @feedburner_atom_item.link.should == 'http://feedproxy.google.com/~r/LawLibrarianBlog/~3/CgraB_He5jQ/googles-latest-captcha-codes-draws-criticism.html'
121
130
  end
122
131
 
123
132
  it "should have the correct author" do
@@ -131,6 +140,8 @@ module FeedAbstract
131
140
  @pyblosxomitem.author.should == ''
132
141
  @chillitem.author.should == ''
133
142
  @twitteritem.author.should == 'djcp'
143
+ @twitteratomitem.author.should == 'pelaphptutor'
144
+ @feedburner_atom_item.author.should == 'Joe Hodnicki'
134
145
  end
135
146
 
136
147
  it "should have the correct authors" do
@@ -144,6 +155,8 @@ module FeedAbstract
144
155
  @pyblosxomitem.authors.should == []
145
156
  @chillitem.authors.should == []
146
157
  @twitteritem.authors.should == ['djcp']
158
+ @twitteratomitem.authors.should == ['pelaphptutor']
159
+ @feedburner_atom_item.authors.should == ['Joe Hodnicki']
147
160
  end
148
161
 
149
162
  it "should have the correct contributor" do
@@ -157,6 +170,8 @@ module FeedAbstract
157
170
  @pyblosxomitem.contributor.should == ''
158
171
  @chillitem.contributor.should == ''
159
172
  @twitteritem.contributor.should == ''
173
+ @twitteratomitem.contributor.should == ''
174
+ @feedburner_atom_item.contributor.should == ''
160
175
  end
161
176
 
162
177
  it "should have the correct contributors" do
@@ -170,6 +185,8 @@ module FeedAbstract
170
185
  @pyblosxomitem.contributors.should == []
171
186
  @chillitem.contributors.should == []
172
187
  @twitteritem.contributors.should == []
188
+ @twitteratomitem.contributors.should == []
189
+ @feedburner_atom_item.contributors.should == []
173
190
  end
174
191
 
175
192
  it "should have the correct category" do
@@ -183,6 +200,8 @@ module FeedAbstract
183
200
  @pyblosxomitem.category.should == ''
184
201
  @chillitem.category.should == ''
185
202
  @twitteritem.category.should == 'security, keylogging'
203
+ @twitteratomitem.category.should == 'Ruby, Rails, jobs'
204
+ @feedburner_atom_item.category.should == 'Web/Tech'
186
205
  end
187
206
 
188
207
  it "should have the correct categories" do
@@ -196,6 +215,8 @@ module FeedAbstract
196
215
  @pyblosxomitem.categories.should == []
197
216
  @chillitem.categories.should == []
198
217
  @twitteritem.categories.should == ['security', 'keylogging']
218
+ @twitteratomitem.categories.should == ['Ruby', 'Rails', 'jobs']
219
+ @feedburner_atom_item.categories.should == ['Web/Tech']
199
220
  end
200
221
 
201
222
  it "should have the correct rights" do
@@ -209,6 +230,8 @@ module FeedAbstract
209
230
  @pyblosxomitem.rights.should == ''
210
231
  @chillitem.rights.should == ''
211
232
  @twitteritem.rights.should == ''
233
+ @twitteratomitem.rights.should == ''
234
+ @feedburner_atom_item.rights.should == ''
212
235
  end
213
236
 
214
237
  it "should have been updated at the correct time" do
@@ -222,6 +245,8 @@ module FeedAbstract
222
245
  @pyblosxomitem.updated.should == Time.parse('2011-09-15T05:21:00Z')
223
246
  @chillitem.updated.should == ""
224
247
  @twitteritem.updated.should == Time.parse('2012-02-11 12:12:27 -0500')
248
+ @twitteratomitem.updated.should == Time.parse('2012-03-19 21:56:03 UTC')
249
+ @feedburner_atom_item.updated.should == Time.parse('2012-04-16T16:25:05Z')
225
250
  end
226
251
 
227
252
  it "should have been published at the proper time" do
@@ -235,6 +260,8 @@ module FeedAbstract
235
260
  @pyblosxomitem.published.should == Time.parse('2011-09-15T05:21:00Z')
236
261
  @chillitem.published.should == ''
237
262
  @twitteritem.published.should == Time.parse('2012-02-11 12:12:27 -0500')
263
+ @twitteratomitem.published.should == Time.parse('2012-03-19 21:56:03 UTC')
264
+ @feedburner_atom_item.published.should == Time.parse('2012-04-16T16:25:05Z')
238
265
  end
239
266
 
240
267
  it "should have the proper guid" do
@@ -248,6 +275,8 @@ module FeedAbstract
248
275
  @pyblosxomitem.guid.should == 'http://mako.cc/copyrighteous/2011/09/15/20110913-00'
249
276
  @chillitem.guid.should == 'https://www.chillingeffects.org/weather.cgi?WeatherID=648'
250
277
  @twitteritem.guid.should == 'http://twitter.com/djcp/statuses/168381896559046656'
278
+ @twitteratomitem.guid.should == 'tag:search.twitter.com,2005:181861618911690752'
279
+ @feedburner_atom_item.guid.should == 'tag:typepad.com,2003:post-6a00d8341bfae553ef016304421f87970d'
251
280
  end
252
281
 
253
282
  end
@@ -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
data/spec/spec_helper.rb CHANGED
@@ -17,8 +17,10 @@ def instantiate_feeds
17
17
  @pyblosxom = FeedAbstract::Feed.new(File.open('spec/test_data/pyblosxom.atom'))
18
18
  @chill = FeedAbstract::Feed.new(File.open('spec/test_data/chillingeffects.xml'))
19
19
  @twitter = FeedAbstract::Feed.new(File.open('spec/test_data/djcp_twitter.rss'))
20
+ @twitter_atom = FeedAbstract::Feed.new(File.open('spec/test_data/twitter_hashtag.atom'))
21
+ @feedburner_atom = FeedAbstract::Feed.new(File.open('spec/test_data/LawLibrarianBlog.atom'))
20
22
 
21
- @all_feeds = [@docatom, @kpgatom, @djcprss2, @djcprss92, @oa, @delicious, @zotero, @feedburner, @pyblosxom, @chill, @twitter]
23
+ @all_feeds = [@docatom, @kpgatom, @djcprss2, @djcprss92, @oa, @delicious, @zotero, @feedburner, @pyblosxom, @chill, @twitter, @twitter_atom, @feedburner_atom]
22
24
  end
23
25
 
24
26
  def instantiate_example_items
@@ -32,4 +34,6 @@ def instantiate_example_items
32
34
  @pyblosxomitem = @pyblosxom.items.first
33
35
  @chillitem = @chill.items.first
34
36
  @twitteritem = @twitter.items.first
37
+ @twitteratomitem = @twitter_atom.items.first
38
+ @feedburner_atom_item = @feedburner_atom.items.first
35
39
  end
@@ -0,0 +1,356 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atomfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="0.3">
3
+ <title>Law Librarian Blog</title>
4
+ <link rel="alternate" type="text/html" href="http://lawprofessors.typepad.com/law_librarian_blog/" />
5
+ <id>tag:typepad.com,2003:weblog-93063</id>
6
+ <link rel="service.post" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063" title="Law Librarian Blog" />
7
+ <modified>2012-04-16T16:25:05Z</modified>
8
+ <tagline>A Member of the Law Professor Blogs Network</tagline>
9
+
10
+ <generator url="http://www.typepad.com/" version="1.0">TypePad</generator>
11
+ <info type="application/xhtml+xml">
12
+ <div xmlns="http://www.w3.org/1999/xhtml">This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site. Please visit <a href="http://lawprofessors.typepad.com/law_librarian_blog/">Law Librarian Blog</a> for more info.</div>
13
+ </info>
14
+ <link rel="start" type="application/atom+xml" href="http://feeds.feedburner.com/LawLibrarianBlog" /><feedburner:info uri="lawlibrarianblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>LawLibrarianBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
15
+ <title>Google's Latest CAPTCHA Codes Draws Criticism</title>
16
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/CgraB_He5jQ/googles-latest-captcha-codes-draws-criticism.html" />
17
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016304421f87970d" title="Google's Latest CAPTCHA Codes Draws Criticism" />
18
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016304421f87970d</id>
19
+ <issued>2012-04-16T12:25:05-04:00</issued>
20
+ <modified>2012-04-16T16:25:05Z</modified>
21
+ <created>2012-04-16T16:25:05Z</created>
22
+ <summary>Here’s a little bit more from the technology front. Google has been accused of another privacy violation. Any tech company that owns a user base numbering in the billions can make a move that draws criticism. Sometimes that criticism is...</summary>
23
+ <author>
24
+ <name>Joe Hodnicki</name>
25
+ </author>
26
+ <dc:subject>Web/Tech</dc:subject>
27
+
28
+
29
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/googles-latest-captcha-codes-draws-criticism.html</feedburner:origLink></entry>
30
+ <entry>
31
+ <title>Managing a Library's Electronic Collection: The Long March to an Integrated Discovery and Access Platform</title>
32
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/oKqMQQ-1E1Y/managing-a-librarys-electronic-collection-the-long-march-to-an-integrated-discovery-and-access-platf.html" />
33
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef01676527fe4b970b" title="Managing a Library's Electronic Collection: The Long March to an Integrated Discovery and Access Platform" />
34
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef01676527fe4b970b</id>
35
+ <issued>2012-04-16T03:48:00-04:00</issued>
36
+ <modified>2012-04-16T11:40:35Z</modified>
37
+ <created>2012-04-16T07:48:00Z</created>
38
+ <summary>The Douglas County (Colorado) public library system has developed a solution for discovering and lending eBooks. Monique Sendze, Associate Director of Information Technology at Douglas County Libraries, describes the project in detail in her article The E-Book Experiment, Public Libraries...</summary>
39
+ <author>
40
+ <name>Joe Hodnicki</name>
41
+ </author>
42
+ <dc:subject>Collection Development</dc:subject>
43
+ <dc:subject>Digital Collections</dc:subject>
44
+ <dc:subject>Electronic Resource</dc:subject>
45
+ <dc:subject>Tech Services</dc:subject>
46
+
47
+
48
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/managing-a-librarys-electronic-collection-the-long-march-to-an-integrated-discovery-and-access-platf.html</feedburner:origLink></entry>
49
+ <entry>
50
+ <title>Some Thoughts on the DOJ Lawsuit Against Apple and the Publishers</title>
51
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/4tzLc1JlPJI/some-thoughts-on-the-doj-lawsuit-against-apple-and-the-publishers.html" />
52
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168ea2e2d09970c" title="Some Thoughts on the DOJ Lawsuit Against Apple and the Publishers" />
53
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168ea2e2d09970c</id>
54
+ <issued>2012-04-15T20:01:22-04:00</issued>
55
+ <modified>2012-04-16T00:01:22Z</modified>
56
+ <created>2012-04-16T00:01:22Z</created>
57
+ <summary>Now that the dust has settled on the lawsuit filed against Apple and five of the major publishers, the commentators have come out in force. The line-up of opinions seem to be, on one side, that the suit is ill-advised...</summary>
58
+ <author>
59
+ <name>Joe Hodnicki</name>
60
+ </author>
61
+ <dc:subject>Books</dc:subject>
62
+ <dc:subject>Litigation in the News</dc:subject>
63
+
64
+
65
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/some-thoughts-on-the-doj-lawsuit-against-apple-and-the-publishers.html</feedburner:origLink></entry>
66
+ <entry>
67
+ <title>Round-Up of Law Practitioner Blogs</title>
68
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/JQsaq_b2vDQ/round-up-of-law-practitioner-blogs-2.html" />
69
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168e8a1de5b970c" title="Round-Up of Law Practitioner Blogs" />
70
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168e8a1de5b970c</id>
71
+ <issued>2012-04-15T03:35:00-04:00</issued>
72
+ <modified>2012-04-15T07:35:00Z</modified>
73
+ <created>2012-04-15T07:35:00Z</created>
74
+ <summary>California Police Brutality Lawyer Blog http://www.californiapolicebrutalitylawyerblog.com/ http://www.californiapolicebrutalitylawyerblog.com/index.xml Examines police brutality cases, news, and related topics in California. Published by Okorie Okorocha Immigration Las Vegas Blog http://www.immigrationlasvegas.com/ http://www.immigrationlasvegas.com/index.xml Discusses immigration cases, news, and related topics in Nevada. Published by Goodin Law...</summary>
75
+ <author>
76
+ <name>Joe Hodnicki</name>
77
+ </author>
78
+ <dc:subject>Web Communications</dc:subject>
79
+
80
+
81
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/round-up-of-law-practitioner-blogs-2.html</feedburner:origLink></entry>
82
+ <entry>
83
+ <title>Hein Adds Congressional Hearings Back to 1927 To HeinOnline</title>
84
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/SY2KLsV_VZw/hein-adds-congressional-hearings-back-to-1927-to-hein-online.html" />
85
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0167651f3430970b" title="Hein Adds Congressional Hearings Back to 1927 To HeinOnline" />
86
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0167651f3430970b</id>
87
+ <issued>2012-04-14T17:20:46-04:00</issued>
88
+ <modified>2012-04-14T21:23:33Z</modified>
89
+ <created>2012-04-14T21:20:46Z</created>
90
+ <summary>As everyone knows, it's hard to keep track these days of the comings and goings of information on databases. In case anyone missed it, Hein is adding congressional hearings to its database. Here's the announcement: Access more than 3,000 of...</summary>
91
+ <author>
92
+ <name>Joe Hodnicki</name>
93
+ </author>
94
+ <dc:subject>Congress</dc:subject>
95
+ <dc:subject>Digital Collections</dc:subject>
96
+
97
+
98
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/hein-adds-congressional-hearings-back-to-1927-to-hein-online.html</feedburner:origLink></entry>
99
+ <entry>
100
+ <title>Best and Worst Jobs of 2012</title>
101
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/T2lmJAX77Rc/best-and-worst-jobs-of-2012.html" />
102
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016304157f93970d" title="Best and Worst Jobs of 2012" />
103
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016304157f93970d</id>
104
+ <issued>2012-04-14T07:13:00-04:00</issued>
105
+ <modified>2012-04-14T11:13:00Z</modified>
106
+ <created>2012-04-14T11:13:00Z</created>
107
+ <summary>CareerCast.com ranked 200 jobs from best to worst based on five criteria: physical demands, work environment, income, stress and hiring outlook. Ranked in first place is Software Enginer and last place is Lumberjack. Librarian is ranked 61st, just ahead of...</summary>
108
+ <author>
109
+ <name>Joe Hodnicki</name>
110
+ </author>
111
+ <dc:subject>Info - Antics or Metrics?</dc:subject>
112
+
113
+
114
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/best-and-worst-jobs-of-2012.html</feedburner:origLink></entry>
115
+ <entry>
116
+ <title>What Can You Find By Rummaging in the Federal Government's Attic?</title>
117
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/QL4nAMs6t6c/what-can-you-find-by-rummaging-in-the-federal-governments-attic.html" />
118
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016303e67468970d" title="What Can You Find By Rummaging in the Federal Government's Attic?" />
119
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016303e67468970d</id>
120
+ <issued>2012-04-13T03:55:00-04:00</issued>
121
+ <modified>2012-04-13T07:55:00Z</modified>
122
+ <created>2012-04-13T07:55:00Z</created>
123
+ <summary>Certainly, some interesting electronic copies of federal documents provided by Governmentattic.org via FOIA requests. For example, Collection of US Supreme Court Legal Maxims, Compiled by the Department of Justice (DOJ) Civil Division Appellate Staff, [1993 through 1998 Terms] is a...</summary>
124
+ <author>
125
+ <name>Joe Hodnicki</name>
126
+ </author>
127
+ <dc:subject>Gov Docs</dc:subject>
128
+ <dc:subject>Legal Research Instruction</dc:subject>
129
+ <dc:subject>Web Communications</dc:subject>
130
+
131
+
132
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/what-can-you-find-by-rummaging-in-the-federal-governments-attic.html</feedburner:origLink></entry>
133
+ <entry>
134
+ <title>Friday Fun: All I do is skim</title>
135
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/DgQHXsdTPoU/friday-fun-all-i-do-is-skim.html" />
136
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016303d71f1c970d" title="Friday Fun: All I do is skim" />
137
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016303d71f1c970d</id>
138
+ <issued>2012-04-13T03:50:00-04:00</issued>
139
+ <modified>2012-04-13T07:50:00Z</modified>
140
+ <created>2012-04-13T07:50:00Z</created>
141
+ <summary />
142
+ <author>
143
+ <name>Joe Hodnicki</name>
144
+ </author>
145
+ <dc:subject>Friday Fun</dc:subject>
146
+
147
+
148
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/friday-fun-all-i-do-is-skim.html</feedburner:origLink></entry>
149
+ <entry>
150
+ <title>Federal District Court Says OK To Library Blocking Internet Content To Adults</title>
151
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/sDuyEvWWveM/federal-district-court-says-ok-to-library-blocking-internet-content-to-adults.html" />
152
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168ea042e0c970c" title="Federal District Court Says OK To Library Blocking Internet Content To Adults" />
153
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168ea042e0c970c</id>
154
+ <issued>2012-04-12T21:06:16-04:00</issued>
155
+ <modified>2012-04-14T19:39:29Z</modified>
156
+ <created>2012-04-13T01:06:16Z</created>
157
+ <summary>Judge Edward Shea of the Eastern District of Washington issued an opinion on Tuesday in the long simmering case of Bradburn v. North Central Library Regional Library District (NCLR) (NO. CV-06-0327-EFS, via a link to PACER). The case involves the...</summary>
158
+ <author>
159
+ <name>Joe Hodnicki</name>
160
+ </author>
161
+ <dc:subject>Collection Development</dc:subject>
162
+ <dc:subject>Court Opinions</dc:subject>
163
+ <dc:subject>Web Communications</dc:subject>
164
+
165
+
166
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/federal-district-court-says-ok-to-library-blocking-internet-content-to-adults.html</feedburner:origLink></entry>
167
+ <entry>
168
+ <title>Compete to Win the First Dewey B Strategic Legal Research Genius Award</title>
169
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/ZNc8wA6thz8/compete-to-win-the-first-dewey-b-strategic-legal-research-genius-award.html" />
170
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016304057786970d" title="Compete to Win the First Dewey B Strategic Legal Research Genius Award" />
171
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016304057786970d</id>
172
+ <issued>2012-04-12T09:23:00-04:00</issued>
173
+ <modified>2012-04-12T13:23:00Z</modified>
174
+ <created>2012-04-12T13:23:00Z</created>
175
+ <summary>By entering the Dewey B Strategic research crossword challenge! [JH]</summary>
176
+ <author>
177
+ <name>Joe Hodnicki</name>
178
+ </author>
179
+ <dc:subject>Legal Research</dc:subject>
180
+
181
+
182
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/compete-to-win-the-first-dewey-b-strategic-legal-research-genius-award.html</feedburner:origLink></entry>
183
+ <entry>
184
+ <title>ALA's 2012 State of America's Libraries Report</title>
185
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/zxdlejtqlrY/alas-2012-state-of-americas-libraries-report.html" />
186
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168e9f048ba970c" title="ALA's 2012 State of America's Libraries Report" />
187
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168e9f048ba970c</id>
188
+ <issued>2012-04-12T03:40:00-04:00</issued>
189
+ <modified>2012-04-12T12:42:43Z</modified>
190
+ <created>2012-04-12T07:40:00Z</created>
191
+ <summary>The State of America's Libraries Report (view online or download PDF) documents trends in library usage and details the impact of library budget cuts, technology use, and the various other challenges facing U.S. libraries. The "New focus of ebooks" section...</summary>
192
+ <author>
193
+ <name>Joe Hodnicki</name>
194
+ </author>
195
+ <dc:subject>Library Associations</dc:subject>
196
+ <dc:subject>New Publications</dc:subject>
197
+
198
+
199
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/alas-2012-state-of-americas-libraries-report.html</feedburner:origLink></entry>
200
+ <entry>
201
+ <title>Some Publishers Settle With The DOJ, Apple and Others To Litigate</title>
202
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/T-u6d5K37Js/some-publishers-settle-with-the-doj-apple-and-others-to-litigate.html" />
203
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168e9f2be30970c" title="Some Publishers Settle With The DOJ, Apple and Others To Litigate" />
204
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168e9f2be30970c</id>
205
+ <issued>2012-04-11T13:35:59-04:00</issued>
206
+ <modified>2012-04-11T17:35:59Z</modified>
207
+ <created>2012-04-11T17:35:59Z</created>
208
+ <summary>From Eric Holder's prepared remarks: As part of this commitment, the Department has reached a settlement with three of the nation’s largest book publishers – and will continue to litigate against Apple, and two additional leading publishers – for conspiring...</summary>
209
+ <author>
210
+ <name>Joe Hodnicki</name>
211
+ </author>
212
+ <dc:subject>Books</dc:subject>
213
+ <dc:subject>Litigation in the News</dc:subject>
214
+
215
+
216
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/some-publishers-settle-with-the-doj-apple-and-others-to-litigate.html</feedburner:origLink></entry>
217
+ <entry>
218
+ <title>Justice Department Sues Apple, Publishers on e-Book Pricing</title>
219
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/5GfgWIhJXjs/justice-department-sues-apple-publishers-on-e-book-pricing.html" />
220
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016303fbc90d970d" title="Justice Department Sues Apple, Publishers on e-Book Pricing" />
221
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016303fbc90d970d</id>
222
+ <issued>2012-04-11T11:03:09-04:00</issued>
223
+ <modified>2012-04-11T17:00:30Z</modified>
224
+ <created>2012-04-11T15:03:09Z</created>
225
+ <summary>The breaking news is that the United States Justice Department is suing Apple and several publishers in a New York federal court today. There are also reports that Attorney General Eric Holder will speak later on today on an “unspecified...</summary>
226
+ <author>
227
+ <name>Joe Hodnicki</name>
228
+ </author>
229
+ <dc:subject>Books</dc:subject>
230
+ <dc:subject>Litigation in the News</dc:subject>
231
+
232
+
233
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/justice-department-sues-apple-publishers-on-e-book-pricing.html</feedburner:origLink></entry>
234
+ <entry>
235
+ <title>Lately We've Seen Some Criticism of Bloomberg Law by an Anonymous Author over at 3 Greeks. Any Response to that?</title>
236
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/QNmkVr6YCf4/lately-weve-seen-some-criticism-of-bloomberg-law-by-an-anonymous-author-over-at-3-greeks-any-respons.html" />
237
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168e9e3bf95970c" title="Lately We've Seen Some Criticism of Bloomberg Law by an Anonymous Author over at 3 Greeks. Any Response to that?" />
238
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168e9e3bf95970c</id>
239
+ <issued>2012-04-11T03:54:00-04:00</issued>
240
+ <modified>2012-04-11T07:54:00Z</modified>
241
+ <created>2012-04-11T07:54:00Z</created>
242
+ <summary>The title of this post is a take-off from an interview question to TR Legal's Mike Dahn in the context of a two-part LLB anonymous post published on LLB titled The WestSearch Straitjacket For Legal Research - Thinking Beyond The...</summary>
243
+ <author>
244
+ <name>Joe Hodnicki</name>
245
+ </author>
246
+ <dc:subject>Legal Research</dc:subject>
247
+ <dc:subject>Products &amp; Services</dc:subject>
248
+ <dc:subject>Publishing Industry</dc:subject>
249
+
250
+
251
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/lately-weve-seen-some-criticism-of-bloomberg-law-by-an-anonymous-author-over-at-3-greeks-any-respons.html</feedburner:origLink></entry>
252
+ <entry>
253
+ <title>Today is National Library Workers Day</title>
254
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/0-cCw8e98RI/today-is-national-library-workers-day.html" />
255
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016303eda425970d" title="Today is National Library Workers Day" />
256
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016303eda425970d</id>
257
+ <issued>2012-04-10T10:44:00-04:00</issued>
258
+ <modified>2012-04-10T14:44:00Z</modified>
259
+ <created>2012-04-10T14:44:00Z</created>
260
+ <summary>It is one the events celebrating National Library Week. [JH]</summary>
261
+ <author>
262
+ <name>Joe Hodnicki</name>
263
+ </author>
264
+ <dc:subject>Library Associations</dc:subject>
265
+
266
+
267
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/today-is-national-library-workers-day.html</feedburner:origLink></entry>
268
+ <entry>
269
+ <title>Pew Interent to Research the Changing Landscape of Library Services in First Comprehensive Examination of Reading Habits Since the Rise of eBooks</title>
270
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/-LVN5qzvZmA/pew-interent-to-research-the-changing-landscape-of-library-services-in-first-comprehensive-examinati.html" />
271
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016303d81c1c970d" title="Pew Interent to Research the Changing Landscape of Library Services in First Comprehensive Examination of Reading Habits Since the Rise of eBooks" />
272
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016303d81c1c970d</id>
273
+ <issued>2012-04-10T03:50:00-04:00</issued>
274
+ <modified>2012-04-10T07:50:00Z</modified>
275
+ <created>2012-04-10T07:50:00Z</created>
276
+ <summary>Pew Research Center’s Internet &amp; American Life Project is conducting the frist comprehensive examination of the reading habits of the general population in the digital era since eBooks came into prominence. The first installment in this Gates Foundation-funded research was...</summary>
277
+ <author>
278
+ <name>Joe Hodnicki</name>
279
+ </author>
280
+ <dc:subject>Administration</dc:subject>
281
+ <dc:subject>Collection Development</dc:subject>
282
+ <dc:subject>Electronic Resource</dc:subject>
283
+ <dc:subject>Library Associations</dc:subject>
284
+ <dc:subject>Meetings</dc:subject>
285
+ <dc:subject>Publishing Industry</dc:subject>
286
+ <dc:subject>Think Tank Reports</dc:subject>
287
+
288
+
289
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/pew-interent-to-research-the-changing-landscape-of-library-services-in-first-comprehensive-examinati.html</feedburner:origLink></entry>
290
+ <entry>
291
+ <title>It's National Library Week, Time To Ban the Books</title>
292
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/qUT_LscTIaQ/its-national-library-week-time-to-ban-the-books.html" />
293
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef0168e9dcb591970c" title="It's National Library Week, Time To Ban the Books" />
294
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef0168e9dcb591970c</id>
295
+ <issued>2012-04-09T16:41:17-04:00</issued>
296
+ <modified>2012-04-09T20:41:17Z</modified>
297
+ <created>2012-04-09T20:41:17Z</created>
298
+ <summary>The American Library Association publishes its list of most challenged books in 2011 coinciding with National Library Week: ttyl; ttfn; l8r, g8r (series), by Lauren Myracle The Color of Earth (series), by Kim Dong Hwa The Hunger Games trilogy, by...</summary>
299
+ <author>
300
+ <name>Joe Hodnicki</name>
301
+ </author>
302
+ <dc:subject>Books</dc:subject>
303
+
304
+
305
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/its-national-library-week-time-to-ban-the-books.html</feedburner:origLink></entry>
306
+ <entry>
307
+ <title>Another Glimpse Into How We Are Tracked Online</title>
308
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/lYafWQ8OaAE/another-glimpse-into-how-we-are-tracked-online.html" />
309
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016764db4eee970b" title="Another Glimpse Into How We Are Tracked Online" />
310
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016764db4eee970b</id>
311
+ <issued>2012-04-09T16:29:28-04:00</issued>
312
+ <modified>2012-04-09T20:29:28Z</modified>
313
+ <created>2012-04-09T20:29:28Z</created>
314
+ <summary>It’s no secret that living online brings a level of scrutiny by a host of companies and web sites. They either want to sell something to the consumer, or just as likely sell the consumer information to someone who wants...</summary>
315
+ <author>
316
+ <name>Joe Hodnicki</name>
317
+ </author>
318
+ <dc:subject>Web/Tech</dc:subject>
319
+
320
+
321
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/another-glimpse-into-how-we-are-tracked-online.html</feedburner:origLink></entry>
322
+ <entry>
323
+ <title>New Editions of the Statistical Abstract To Be Published Commercially</title>
324
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/v48vKgXNCBA/new-editions-of-the-statistical-abstract-to-be-published-commercially.html" />
325
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016764da08e6970b" title="New Editions of the Statistical Abstract To Be Published Commercially" />
326
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016764da08e6970b</id>
327
+ <issued>2012-04-09T13:52:37-04:00</issued>
328
+ <modified>2012-04-09T17:52:37Z</modified>
329
+ <created>2012-04-09T17:52:37Z</created>
330
+ <summary>If anyone has visited the page for the Statistical Abstract of the United States, that person would see this message: The U.S. Census Bureau is terminating the collection of data for the Statistical Compendia program effective October 1, 2011. The...</summary>
331
+ <author>
332
+ <name>Joe Hodnicki</name>
333
+ </author>
334
+ <dc:subject>Books</dc:subject>
335
+
336
+
337
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/new-editions-of-the-statistical-abstract-to-be-published-commercially.html</feedburner:origLink></entry>
338
+ <entry>
339
+ <title>The New Poster Boy of AALL!</title>
340
+ <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LawLibrarianBlog/~3/7tedaJWrFVE/the-new-poster-boy-of-aall.html" />
341
+ <link rel="service.edit" type="application/x.atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=93063/entry_id=6a00d8341bfae553ef016303bd5475970d" title="The New Poster Boy of AALL!" />
342
+ <id>tag:typepad.com,2003:post-6a00d8341bfae553ef016303bd5475970d</id>
343
+ <issued>2012-04-09T07:40:00-04:00</issued>
344
+ <modified>2012-04-09T12:30:53Z</modified>
345
+ <created>2012-04-09T11:40:00Z</created>
346
+ <summary>I recently saw AALL's new poster boy in the latest issue of Spectrum. It's found in an ad for Boston 2012 (foreground image below, click to enlarge if you have the stomach for that). OMG, I'm thinking for AALL ad...</summary>
347
+ <author>
348
+ <name>Joe Hodnicki</name>
349
+ </author>
350
+ <dc:subject>Library Associations</dc:subject>
351
+ <dc:subject>Meetings</dc:subject>
352
+
353
+
354
+ <feedburner:origLink>http://lawprofessors.typepad.com/law_librarian_blog/2012/04/the-new-poster-boy-of-aall.html</feedburner:origLink></entry>
355
+
356
+ </feed><!-- ph=1 -->
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><feed xmlns:google="http://base.google.com/ns/1.0" xml:lang="en-US" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.w3.org/2005/Atom" xmlns:twitter="http://api.twitter.com/" xmlns:georss="http://www.georss.org/georss"><id>tag:search.twitter.com,2005:search/#rails</id><link type="text/html" href="http://search.twitter.com/search?q=%23rails" rel="alternate"/><link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=%23rails" rel="self"/><title>#rails - Twitter Search</title><link type="application/opensearchdescription+xml" href="http://twitter.com/opensearch.xml" rel="search"/><link type="application/atom+xml" href="http://search.twitter.com/search.atom?since_id=181861618911690752&amp;q=%23rails" rel="refresh"/><updated>2012-03-19T21:56:03Z</updated><openSearch:itemsPerPage>15</openSearch:itemsPerPage><link type="application/atom+xml" href="http://search.twitter.com/search.atom?page=2&amp;max_id=181861618911690752&amp;q=%23rails" rel="next"/><entry><id>tag:search.twitter.com,2005:181861618911690752</id><published>2012-03-19T21:56:03Z</published><link type="text/html" href="http://twitter.com/pelaphptutor/statuses/181861618911690752" rel="alternate"/><title>Senior #Ruby on #Rails developer(s) http://t.co/rvqsIK0h #jobs</title><content type="html">Senior &lt;a href="http://search.twitter.com/search?q=%23Ruby" title="#Ruby" class=" "&gt;#Ruby&lt;/a&gt; on &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" "&gt;#Rails&lt;/a&gt;&lt;/em&gt; developer(s) &lt;a href="http://t.co/rvqsIK0h"&gt;http://t.co/rvqsIK0h&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23jobs" title="#jobs" class=" "&gt;#jobs&lt;/a&gt;</content><updated>2012-03-19T21:56:03Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/292484362/n100131847672_3877_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://www.pelaphptutorials.com/" rel="nofollow"&gt;PelaPHPTutorials&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>pelaphptutor (pelaphptutorials.com)</name><uri>http://twitter.com/pelaphptutor</uri></author></entry><entry><id>tag:search.twitter.com,2005:181860990592368640</id><published>2012-03-19T21:53:33Z</published><link type="text/html" href="http://twitter.com/newsxbrain/statuses/181860990592368640" rel="alternate"/><title>[2tweet] friendly_id&#x3092;&#x4f7f;&#x3063;&#x3066;Friendly&#x3067;RESTful&#x306a;URI&#x8a2d;&#x8a08; #Ruby #Rails - Qiita&#x2192;http://t.co/UBac1Zcn</title><content type="html">[2tweet] friendly_id&#x3092;&#x4f7f;&#x3063;&#x3066;Friendly&#x3067;RESTful&#x306a;URI&#x8a2d;&#x8a08; &lt;a href="http://search.twitter.com/search?q=%23Ruby" title="#Ruby" class=" "&gt;#Ruby&lt;/a&gt; &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" "&gt;#Rails&lt;/a&gt;&lt;/em&gt; - Qiita&#x2192;&lt;a href="http://t.co/UBac1Zcn"&gt;http://t.co/UBac1Zcn&lt;/a&gt;</content><updated>2012-03-19T21:53:33Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1704033209/_____-1_normal.gif" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://newsxbrain.com/" rel="nofollow"&gt;newsxbrain&lt;/a&gt;</twitter:source><twitter:lang>ja</twitter:lang><author><name>newsxbrain (NEWS&#xd7;BRAIN[&#x30cb;&#x30e5;&#x30fc;&#x30b9;&#x30d6;&#x30ec;&#x30a4;&#x30f3;])</name><uri>http://twitter.com/newsxbrain</uri></author></entry><entry><id>tag:search.twitter.com,2005:181860163660169217</id><published>2012-03-19T21:50:16Z</published><link type="text/html" href="http://twitter.com/pietereer/statuses/181860163660169217" rel="alternate"/><title>Blown away with how good this Rails CMS is for integration in existing Rails apps: https://t.co/Klfr217I #rails #ruby #cms #in</title><content type="html">Blown away with how good this Rails CMS is for integration in existing Rails apps: &lt;a href="https://t.co/Klfr217I"&gt;https://t.co/Klfr217I&lt;/a&gt; &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt; &lt;a href="http://search.twitter.com/search?q=%23ruby" title="#ruby" class=" "&gt;#ruby&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23cms" title="#cms" class=" "&gt;#cms&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23in" title="#in" class=" "&gt;#in&lt;/a&gt;</content><updated>2012-03-19T21:50:16Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1730280321/pieter_reasonably_small_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/"&gt;web&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>pietereer (Pieter Eerlings)</name><uri>http://twitter.com/pietereer</uri></author></entry><entry><id>tag:search.twitter.com,2005:181852384232873984</id><published>2012-03-19T21:19:21Z</published><link type="text/html" href="http://twitter.com/twotoneatl/statuses/181852384232873984" rel="alternate"/><title>RT @highgroove #hacknight begins now! What @alindeman is hacking: http://t.co/s0LeWtFw // http://t.co/GCIRnxNL #rails #ruby #wolfbrain</title><content type="html">RT @&lt;a class=" " href="http://twitter.com/highgroove"&gt;highgroove&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23hacknight" title="#hacknight" class=" "&gt;#hacknight&lt;/a&gt; begins now! What @alindeman is hacking: &lt;a href="http://t.co/s0LeWtFw"&gt;http://t.co/s0LeWtFw&lt;/a&gt; // &lt;a href="http://t.co/GCIRnxNL"&gt;http://t.co/GCIRnxNL&lt;/a&gt; &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt; &lt;a href="http://search.twitter.com/search?q=%23ruby" title="#ruby" class=" "&gt;#ruby&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23wolfbrain" title="#wolfbrain" class=" "&gt;#wolfbrain&lt;/a&gt;</content><updated>2012-03-19T21:19:21Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1839933674/logo_normal.png" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/devices" rel="nofollow"&gt;txt&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>twotoneatl (Jon Woodroof)</name><uri>http://twitter.com/twotoneatl</uri></author></entry><entry><id>tag:search.twitter.com,2005:181849434706022400</id><published>2012-03-19T21:07:38Z</published><link type="text/html" href="http://twitter.com/mattmacnaughton/statuses/181849434706022400" rel="alternate"/><title>Code by the beach! We're hiring #Rails developers at PromoJam in Venice, CA. Check out our open position on GitHub https://t.co/QwBIzwuG</title><content type="html">Code by the beach! We're hiring &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" "&gt;#Rails&lt;/a&gt;&lt;/em&gt; developers at PromoJam in Venice, CA. Check out our open position on GitHub &lt;a href="https://t.co/QwBIzwuG"&gt;https://t.co/QwBIzwuG&lt;/a&gt;</content><updated>2012-03-19T21:07:38Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/951402566/profileb_W_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/"&gt;web&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>mattmacnaughton (Matt MacNaughton)</name><uri>http://twitter.com/mattmacnaughton</uri></author></entry><entry><id>tag:search.twitter.com,2005:181847777968525314</id><published>2012-03-19T21:01:03Z</published><link type="text/html" href="http://twitter.com/x_rubydevs/statuses/181847777968525314" rel="alternate"/><title>Relevance Makes the B Corp "Best for the World" List! #ruby #rails http://t.co/AtPe73gM</title><content type="html">Relevance Makes the B Corp "Best for the World" List! &lt;a href="http://search.twitter.com/search?q=%23ruby" title="#ruby" class=" "&gt;#ruby&lt;/a&gt; &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt; &lt;a href="http://t.co/AtPe73gM"&gt;http://t.co/AtPe73gM&lt;/a&gt;</content><updated>2012-03-19T21:01:03Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1242574217/XYDO_normal.jpeg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://www.xydo.com" rel="nofollow"&gt;XYDOhandles&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>x_rubydevs (XYDO Ruby Dev)</name><uri>http://twitter.com/x_rubydevs</uri></author></entry><entry><id>tag:search.twitter.com,2005:181847089439973376</id><published>2012-03-19T20:58:19Z</published><link type="text/html" href="http://twitter.com/philipzaengle/statuses/181847089439973376" rel="alternate"/><title>Note to self: you can't run git commands within the rails console. #rails</title><content type="html">Note to self: you can't run git commands within the rails console. &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt;</content><updated>2012-03-19T20:58:19Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/935161088/500x500_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://itunes.apple.com/us/app/twitter/id409789998?mt=12" rel="nofollow"&gt;Twitter for Mac&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>philipzaengle (Philip Zaengle)</name><uri>http://twitter.com/philipzaengle</uri></author></entry><entry><id>tag:search.twitter.com,2005:181838570946969600</id><published>2012-03-19T20:24:28Z</published><link type="text/html" href="http://twitter.com/aereal/statuses/181838570946969600" rel="alternate"/><title>friendly_id&#x3092;&#x4f7f;&#x3063;&#x3066;Friendly&#x3067;RESTful&#x306a;URI&#x8a2d;&#x8a08; #Ruby #Rails http://t.co/WM5zwSBY</title><content type="html">friendly_id&#x3092;&#x4f7f;&#x3063;&#x3066;Friendly&#x3067;RESTful&#x306a;URI&#x8a2d;&#x8a08; &lt;a href="http://search.twitter.com/search?q=%23Ruby" title="#Ruby" class=" "&gt;#Ruby&lt;/a&gt; &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" "&gt;#Rails&lt;/a&gt;&lt;/em&gt; &lt;a href="http://t.co/WM5zwSBY"&gt;http://t.co/WM5zwSBY&lt;/a&gt;</content><updated>2012-03-19T20:24:28Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1796360201/a8b842d3448ded45259dd74d452c5972_normal.png" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://qiita.com" rel="nofollow"&gt;Qiita&lt;/a&gt;</twitter:source><twitter:lang>ja</twitter:lang><author><name>aereal (&#x65e5;&#x5e38;&#x30c4;&#x30a4;&#x30fc;&#x30c8;
2
+ )</name><uri>http://twitter.com/aereal</uri></author></entry><entry><id>tag:search.twitter.com,2005:181835236961824769</id><published>2012-03-19T20:11:13Z</published><link type="text/html" href="http://twitter.com/honeyshock/statuses/181835236961824769" rel="alternate"/><title>#people are being #trained so far off #track seems that more of us are going straight off the #rails...Tammy Wells</title><content type="html">&lt;a href="http://search.twitter.com/search?q=%23people" title="#people" class=" "&gt;#people&lt;/a&gt; are being &lt;a href="http://search.twitter.com/search?q=%23trained" title="#trained" class=" "&gt;#trained&lt;/a&gt; so far off &lt;a href="http://search.twitter.com/search?q=%23track" title="#track" class=" "&gt;#track&lt;/a&gt; seems that more of us are going straight off the &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt;...Tammy Wells</content><updated>2012-03-19T20:11:13Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1905722719/IMG03331-20120318-1011_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://blackberry.com/twitter" rel="nofollow"&gt;Twitter for BlackBerry&#xae;&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>honeyshock (Tammy Wells)</name><uri>http://twitter.com/honeyshock</uri></author></entry><entry><id>tag:search.twitter.com,2005:181834055552212992</id><published>2012-03-19T20:06:31Z</published><link type="text/html" href="http://twitter.com/rubyve/statuses/181834055552212992" rel="alternate"/><title>&#x201c;@coders_vzla: Personaliza el c&#xf3;digo creado por generadores de #rails - Gema Roja http://t.co/5MPRZbSp @rubyve&#x201d;</title><content type="html">&#x201c;@&lt;a class=" " href="http://twitter.com/coders_vzla"&gt;coders_vzla&lt;/a&gt;: Personaliza el c&#xf3;digo creado por generadores de &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt; - Gema Roja &lt;a href="http://t.co/5MPRZbSp"&gt;http://t.co/5MPRZbSp&lt;/a&gt; @&lt;a class=" " href="http://twitter.com/rubyve"&gt;rubyve&lt;/a&gt;&#x201d;</content><updated>2012-03-19T20:06:31Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1153697142/ruby-pintado_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://itunes.apple.com/us/app/twitter/id409789998?mt=12" rel="nofollow"&gt;Twitter for Mac&lt;/a&gt;</twitter:source><twitter:lang>es</twitter:lang><author><name>rubyve (RubyVE)</name><uri>http://twitter.com/rubyve</uri></author></entry><entry><id>tag:search.twitter.com,2005:181833803856228352</id><published>2012-03-19T20:05:31Z</published><link type="text/html" href="http://twitter.com/scicasoft/statuses/181833803856228352" rel="alternate"/><title>enfiiiiinnnnnnn #ruby marche installing #rails :-) @hassanemoustaph</title><content type="html">enfiiiiinnnnnnn &lt;a href="http://search.twitter.com/search?q=%23ruby" title="#ruby" class=" "&gt;#ruby&lt;/a&gt; marche installing &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt; :-) @&lt;a class=" " href="http://twitter.com/hassanemoustaph"&gt;hassanemoustaph&lt;/a&gt;</content><updated>2012-03-19T20:05:31Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/634703361/Code-Lyoko-11_389x506_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/"&gt;web&lt;/a&gt;</twitter:source><twitter:lang>de</twitter:lang><author><name>scicasoft (Cheikh Sidya Camara)</name><uri>http://twitter.com/scicasoft</uri></author></entry><entry><id>tag:search.twitter.com,2005:181832307542466560</id><published>2012-03-19T19:59:35Z</published><link type="text/html" href="http://twitter.com/dexterous/statuses/181832307542466560" rel="alternate"/><title>@srshti @pathsny @tdinkar @markhneedham how does a vanilla #rails app substitute an in-memory instance of a #mysql db for tests?</title><content type="html">@&lt;a class=" " href="http://twitter.com/srshti"&gt;srshti&lt;/a&gt; @&lt;a class=" " href="http://twitter.com/pathsny"&gt;pathsny&lt;/a&gt; @&lt;a class=" " href="http://twitter.com/tdinkar"&gt;tdinkar&lt;/a&gt; @&lt;a class=" " href="http://twitter.com/markhneedham"&gt;markhneedham&lt;/a&gt; how does a vanilla &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt; app substitute an in-memory instance of a &lt;a href="http://search.twitter.com/search?q=%23mysql" title="#mysql" class=" "&gt;#mysql&lt;/a&gt; db for tests?</content><updated>2012-03-19T19:59:35Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1367401855/IMG_3076_normal.JPG" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/"&gt;web&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>dexterous (Saager Mhatre)</name><uri>http://twitter.com/dexterous</uri></author></entry><entry><id>tag:search.twitter.com,2005:181832161400324097</id><published>2012-03-19T19:59:00Z</published><link type="text/html" href="http://twitter.com/ohmyshirt/statuses/181832161400324097" rel="alternate"/><title>RT @KCITP: Rails&#x2019; new seamless integration with Amazon&#x2019;s DynamoDB and S3 http://t.co/f6hXVK5n // #Rails</title><content type="html">RT @&lt;a class=" " href="http://twitter.com/KCITP"&gt;KCITP&lt;/a&gt;: Rails&#x2019; new seamless integration with Amazon&#x2019;s DynamoDB and S3 &lt;a href="http://t.co/f6hXVK5n"&gt;http://t.co/f6hXVK5n&lt;/a&gt; // &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" "&gt;#Rails&lt;/a&gt;&lt;/em&gt;</content><updated>2012-03-19T19:59:00Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1881675087/423482_10100161366557141_22007281_41947547_1603094433_n_normal.jpeg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://www.tweetdeck.com" rel="nofollow"&gt;TweetDeck&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>ohmyshirt (Mikey)</name><uri>http://twitter.com/ohmyshirt</uri></author></entry><entry><id>tag:search.twitter.com,2005:181831123637248000</id><published>2012-03-19T19:54:52Z</published><link type="text/html" href="http://twitter.com/Veraticus/statuses/181831123637248000" rel="alternate"/><title>Added association names... Next Dynamoid feature is going to be indexes through associations! https://t.co/1j5FONY5 #dynamodb #ruby #rails</title><content type="html">Added association names... Next Dynamoid feature is going to be indexes through associations! &lt;a href="https://t.co/1j5FONY5"&gt;https://t.co/1j5FONY5&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23dynamodb" title="#dynamodb" class=" "&gt;#dynamodb&lt;/a&gt; &lt;a href="http://search.twitter.com/search?q=%23ruby" title="#ruby" class=" "&gt;#ruby&lt;/a&gt; &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23rails" title="#rails" class=" "&gt;#rails&lt;/a&gt;&lt;/em&gt;</content><updated>2012-03-19T19:54:52Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1844017969/My_HipstaPrint_0-1_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/"&gt;web&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>Veraticus (Josh Symonds)</name><uri>http://twitter.com/Veraticus</uri></author></entry><entry><id>tag:search.twitter.com,2005:181830550754045952</id><published>2012-03-19T19:52:36Z</published><link type="text/html" href="http://twitter.com/ticean/statuses/181830550754045952" rel="alternate"/><title>Code by the beach! I'm hiring #Rails developers for a fun project in LA. https://t.co/4I5pOO5p</title><content type="html">Code by the beach! I'm hiring &lt;em&gt;&lt;a href="http://search.twitter.com/search?q=%23Rails" title="#Rails" class=" "&gt;#Rails&lt;/a&gt;&lt;/em&gt; developers for a fun project in LA. &lt;a href="https://t.co/4I5pOO5p"&gt;https://t.co/4I5pOO5p&lt;/a&gt;</content><updated>2012-03-19T19:52:36Z</updated><link type="image/png" href="http://a0.twimg.com/profile_images/1227437269/2007-07-24-235346_normal.jpg" rel="image"/><twitter:geo></twitter:geo><twitter:metadata><twitter:result_type>recent</twitter:result_type></twitter:metadata><twitter:source>&lt;a href="http://twitter.com/"&gt;web&lt;/a&gt;</twitter:source><twitter:lang>en</twitter:lang><author><name>ticean (Ticean Bennett)</name><uri>http://twitter.com/ticean</uri></author></entry></feed>
metadata CHANGED
@@ -1,72 +1,86 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feed-abstract
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
5
- prerelease:
4
+ version: 0.0.16
6
5
  platform: ruby
7
6
  authors:
8
7
  - Daniel Collis-Puro
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-19 00:00:00.000000000 Z
11
+ date: 2017-04-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
- requirement: &11691180 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *11691180
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rdoc
27
- requirement: &11689920 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *11689920
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: bundler
38
- requirement: &11688220 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - ">="
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *11688220
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: jeweler
49
- requirement: &11097340 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ! '>='
59
+ - - ">="
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *11097340
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: simplecov
60
- requirement: &11094940 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - ">="
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *11094940
69
- description: ! 'This library creates a common object graph for the RSS/Atom/RDF parsing
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: 'This library creates a common object graph for the RSS/Atom/RDF parsing
70
84
  classes in the ruby standard library. This allows you parse different feed formats
71
85
  and get back the same (or at least a very similar) set of results - item authors
72
86
  are accessible under an "author(s)" attribute, categories/tags/subjects are accessible
@@ -80,7 +94,7 @@ extensions: []
80
94
  extra_rdoc_files:
81
95
  - README.rdoc
82
96
  files:
83
- - .gitignore
97
+ - ".gitignore"
84
98
  - Gemfile
85
99
  - README.rdoc
86
100
  - Rakefile
@@ -98,10 +112,12 @@ files:
98
112
  - lib/feed-abstract/items/rss.rb
99
113
  - lib/feed-abstract/mixins.rb
100
114
  - lib/feed-abstract/version.rb
115
+ - lib/rss_atom_monkeypatches.rb
101
116
  - spec/feed_abstract_channel_spec.rb
102
117
  - spec/feed_abstract_item_spec.rb
103
118
  - spec/feed_abstract_spec.rb
104
119
  - spec/spec_helper.rb
120
+ - spec/test_data/LawLibrarianBlog.atom
105
121
  - spec/test_data/chillingeffects.xml
106
122
  - spec/test_data/djcp.rss
107
123
  - spec/test_data/djcp.rss92
@@ -113,30 +129,30 @@ files:
113
129
  - spec/test_data/katanapg.atom
114
130
  - spec/test_data/oa.africa.rss
115
131
  - spec/test_data/pyblosxom.atom
132
+ - spec/test_data/twitter_hashtag.atom
116
133
  - spec/test_data/zotero.rss
117
134
  homepage: https://github.com/berkmancenter/feed-abstract
118
135
  licenses: []
136
+ metadata: {}
119
137
  post_install_message:
120
138
  rdoc_options:
121
- - --charset=UTF-8
139
+ - "--charset=UTF-8"
122
140
  require_paths:
123
141
  - lib
124
142
  required_ruby_version: !ruby/object:Gem::Requirement
125
- none: false
126
143
  requirements:
127
- - - ! '>='
144
+ - - ">="
128
145
  - !ruby/object:Gem::Version
129
146
  version: '0'
130
147
  required_rubygems_version: !ruby/object:Gem::Requirement
131
- none: false
132
148
  requirements:
133
- - - ! '>='
149
+ - - ">="
134
150
  - !ruby/object:Gem::Version
135
151
  version: '0'
136
152
  requirements: []
137
153
  rubyforge_project:
138
- rubygems_version: 1.8.10
154
+ rubygems_version: 2.6.13
139
155
  signing_key:
140
- specification_version: 3
156
+ specification_version: 4
141
157
  summary: Abstracts RSS/Atom/RDF stdlib parsing into a common object graph.
142
158
  test_files: []