feedzirra-redis 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +63 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/feedzirra-redis.gemspec +74 -0
- data/lib/feedzirra-redis.rb +79 -0
- data/test/fixtures/monkeys_new.atom +313 -0
- data/test/fixtures/monkeys_old.atom +313 -0
- data/test/helper.rb +25 -0
- data/test/test_feedzirra-redis.rb +53 -0
- metadata +160 -0
data/.document
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm --create 1.9.2@feedzirra_redis_gem
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
activesupport (3.0.9)
|
5
|
+
addressable (2.2.6)
|
6
|
+
bcrypt-ruby (2.1.4)
|
7
|
+
builder (3.0.0)
|
8
|
+
curb (0.7.15)
|
9
|
+
dm-core (1.1.0)
|
10
|
+
addressable (~> 2.2.4)
|
11
|
+
dm-redis-adapter (0.4.0)
|
12
|
+
dm-core (>= 1.1.0)
|
13
|
+
dm-types (>= 1.1.0)
|
14
|
+
hiredis (~> 0.3.0)
|
15
|
+
redis (~> 2.2)
|
16
|
+
dm-types (1.1.0)
|
17
|
+
bcrypt-ruby (~> 2.1.4)
|
18
|
+
dm-core (~> 1.1.0)
|
19
|
+
fastercsv (~> 1.5.4)
|
20
|
+
json (~> 1.4.6)
|
21
|
+
stringex (~> 1.2.0)
|
22
|
+
uuidtools (~> 2.1.2)
|
23
|
+
fakeweb (1.3.0)
|
24
|
+
fastercsv (1.5.4)
|
25
|
+
feedzirra (0.0.24)
|
26
|
+
activesupport (>= 2.3.8)
|
27
|
+
builder (>= 2.1.2)
|
28
|
+
curb (>= 0.2.3)
|
29
|
+
loofah (>= 0.3.1)
|
30
|
+
nokogiri (> 0.0.0)
|
31
|
+
sax-machine (>= 0.0.12)
|
32
|
+
git (1.2.5)
|
33
|
+
hiredis (0.3.2)
|
34
|
+
i18n (0.6.0)
|
35
|
+
jeweler (1.6.4)
|
36
|
+
bundler (~> 1.0)
|
37
|
+
git (>= 1.2.5)
|
38
|
+
rake
|
39
|
+
json (1.4.6)
|
40
|
+
loofah (1.0.0)
|
41
|
+
nokogiri (>= 1.3.3)
|
42
|
+
nokogiri (1.5.0)
|
43
|
+
rake (0.9.2)
|
44
|
+
rcov (0.9.9)
|
45
|
+
redis (2.2.1)
|
46
|
+
sax-machine (0.0.16)
|
47
|
+
nokogiri (> 0.0.0)
|
48
|
+
shoulda (2.11.3)
|
49
|
+
stringex (1.2.2)
|
50
|
+
uuidtools (2.1.2)
|
51
|
+
|
52
|
+
PLATFORMS
|
53
|
+
ruby
|
54
|
+
|
55
|
+
DEPENDENCIES
|
56
|
+
bundler (~> 1.0.0)
|
57
|
+
dm-redis-adapter
|
58
|
+
fakeweb
|
59
|
+
feedzirra
|
60
|
+
i18n
|
61
|
+
jeweler (~> 1.6.2)
|
62
|
+
rcov
|
63
|
+
shoulda
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Logan Koester
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
= feedzirra-redis
|
2
|
+
|
3
|
+
Description goes here.
|
4
|
+
|
5
|
+
== Contributing to feedzirra-redis
|
6
|
+
|
7
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
8
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
9
|
+
* Fork the project
|
10
|
+
* Start a feature/bugfix branch
|
11
|
+
* Commit and push until you are happy with your contribution
|
12
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
13
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
14
|
+
|
15
|
+
== Copyright
|
16
|
+
|
17
|
+
Copyright (c) 2011 Logan Koester. See LICENSE.txt for
|
18
|
+
further details.
|
19
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "feedzirra-redis"
|
18
|
+
gem.homepage = "http://github.com/logankoester/feedzirra-redis"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{Dead simple feed persistance}
|
21
|
+
gem.description = %Q{Dead simple feed persistance... because you shouldn't need a MySQL server just to include a few RSS items on a page}
|
22
|
+
gem.email = "lkoester@agoragames.com"
|
23
|
+
gem.authors = ["Logan Koester"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/test_*.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
require 'rcov/rcovtask'
|
36
|
+
Rcov::RcovTask.new do |test|
|
37
|
+
test.libs << 'test'
|
38
|
+
test.pattern = 'test/**/test_*.rb'
|
39
|
+
test.verbose = true
|
40
|
+
test.rcov_opts << '--exclude "gems/*"'
|
41
|
+
end
|
42
|
+
|
43
|
+
task :default => :test
|
44
|
+
|
45
|
+
require 'rake/rdoctask'
|
46
|
+
Rake::RDocTask.new do |rdoc|
|
47
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
|
+
|
49
|
+
rdoc.rdoc_dir = 'rdoc'
|
50
|
+
rdoc.title = "feedzirra-redis #{version}"
|
51
|
+
rdoc.rdoc_files.include('README*')
|
52
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{feedzirra-redis}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Logan Koester"]
|
12
|
+
s.date = %q{2011-07-19}
|
13
|
+
s.description = %q{Dead simple feed persistance... because you shouldn't need a MySQL server just to include a few RSS items on a page}
|
14
|
+
s.email = %q{lkoester@agoragames.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rvmrc",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"feedzirra-redis.gemspec",
|
29
|
+
"lib/feedzirra-redis.rb",
|
30
|
+
"test/fixtures/monkeys_new.atom",
|
31
|
+
"test/fixtures/monkeys_old.atom",
|
32
|
+
"test/helper.rb",
|
33
|
+
"test/test_feedzirra-redis.rb"
|
34
|
+
]
|
35
|
+
s.homepage = %q{http://github.com/logankoester/feedzirra-redis}
|
36
|
+
s.licenses = ["MIT"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = %q{1.6.2}
|
39
|
+
s.summary = %q{Dead simple feed persistance}
|
40
|
+
|
41
|
+
if s.respond_to? :specification_version then
|
42
|
+
s.specification_version = 3
|
43
|
+
|
44
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
|
+
s.add_runtime_dependency(%q<dm-redis-adapter>, [">= 0"])
|
46
|
+
s.add_runtime_dependency(%q<feedzirra>, [">= 0"])
|
47
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
48
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
50
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
|
51
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
52
|
+
s.add_development_dependency(%q<fakeweb>, [">= 0"])
|
53
|
+
else
|
54
|
+
s.add_dependency(%q<dm-redis-adapter>, [">= 0"])
|
55
|
+
s.add_dependency(%q<feedzirra>, [">= 0"])
|
56
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
57
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
58
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
59
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
60
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
61
|
+
s.add_dependency(%q<fakeweb>, [">= 0"])
|
62
|
+
end
|
63
|
+
else
|
64
|
+
s.add_dependency(%q<dm-redis-adapter>, [">= 0"])
|
65
|
+
s.add_dependency(%q<feedzirra>, [">= 0"])
|
66
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
67
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
68
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
69
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
70
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
71
|
+
s.add_dependency(%q<fakeweb>, [">= 0"])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
@@ -0,0 +1,79 @@
|
|
1
|
+
%w{rubygems feedzirra dm-core dm-redis-adapter}.each { |f| require f }
|
2
|
+
|
3
|
+
module FeedzirraRedis
|
4
|
+
|
5
|
+
class Entry
|
6
|
+
include DataMapper::Resource
|
7
|
+
property :id, Serial
|
8
|
+
property :guid, String, :index => true
|
9
|
+
property :title, String
|
10
|
+
property :url, String
|
11
|
+
property :author, String
|
12
|
+
property :summary, Text
|
13
|
+
property :content, Text
|
14
|
+
property :published, Time
|
15
|
+
|
16
|
+
belongs_to :feed
|
17
|
+
end
|
18
|
+
|
19
|
+
class Feed
|
20
|
+
include DataMapper::Resource
|
21
|
+
property :id, Serial
|
22
|
+
property :title, String
|
23
|
+
property :url, String
|
24
|
+
property :feed_url, String, :index => true
|
25
|
+
property :etag, String
|
26
|
+
property :last_modified, DateTime
|
27
|
+
|
28
|
+
has n, :entries
|
29
|
+
|
30
|
+
def add_entries(entries)
|
31
|
+
entries.each do |entry|
|
32
|
+
Entry.first_or_create( {:guid => entry.guid}, {
|
33
|
+
:title => entry.title,
|
34
|
+
:summary => entry.summary,
|
35
|
+
:url => entry.url,
|
36
|
+
:published => entry.published,
|
37
|
+
:feed => self
|
38
|
+
})
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.fetch_and_parse(urls, options = {})
|
43
|
+
if urls.is_a?(String)
|
44
|
+
feed = Feedzirra::Feed.fetch_and_parse(urls, options)
|
45
|
+
update_redis_from feed
|
46
|
+
else
|
47
|
+
feeds = Feedzirra::Feed.fetch_and_parse(urls, options)
|
48
|
+
redis_feeds = {}
|
49
|
+
feeds.map do |feed|
|
50
|
+
redis_feed = update_redis_from feed
|
51
|
+
redis_feeds.merge!(redis_feed.feed_url => redis_feed)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Delegate for compatibility
|
57
|
+
def self.update(feeds, options = {})
|
58
|
+
self.fetch_and_parse(feeds, options)
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
def self.update_redis_from(feed)
|
63
|
+
redis_feed = Feed.first_or_create(:feed_url => feed.feed_url)
|
64
|
+
redis_feed.update({
|
65
|
+
:title => feed.title,
|
66
|
+
:url => feed.url,
|
67
|
+
:etag => feed.etag,
|
68
|
+
:last_modified => feed.last_modified
|
69
|
+
})
|
70
|
+
feed.entries.each do |feed_entry|
|
71
|
+
redis_feed.entries.first_or_create({ :id => feed_entry.id }, {
|
72
|
+
})
|
73
|
+
|
74
|
+
end
|
75
|
+
return redis_feed
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,313 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<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/">
|
3
|
+
<id>tag:search.twitter.com,2005:search/monkeys</id>
|
4
|
+
<link type="text/html" href="http://search.twitter.com/search?q=monkeys" rel="alternate"/>
|
5
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=monkeys" rel="self"/>
|
6
|
+
<title>monkeys - Twitter Search</title>
|
7
|
+
<link type="application/opensearchdescription+xml" href="http://search.twitter.com/opensearch.xml" rel="search"/>
|
8
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=monkeys&since_id=93342804146790400" rel="refresh"/>
|
9
|
+
<twitter:warning>since_id removed for pagination.</twitter:warning>
|
10
|
+
<updated>2011-07-19T15:33:53Z</updated>
|
11
|
+
<openSearch:itemsPerPage>15</openSearch:itemsPerPage>
|
12
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?max_id=93342804146790400&page=2&q=monkeys" rel="next"/>
|
13
|
+
<entry>
|
14
|
+
<id>tag:search.twitter.com,2005:93342804146790400</id>
|
15
|
+
<published>2011-07-19T15:33:53Z</published>
|
16
|
+
<link type="text/html" href="http://twitter.com/garyboyce/statuses/93342804146790400" rel="alternate"/>
|
17
|
+
<title>RT @Aledeiinion: I hope it turns out a room full of monkeys have infact been running News International all along. #hackgate</title>
|
18
|
+
<content type="html">RT <a href="http://twitter.com/Aledeiinion">@Aledeiinion</a>: I hope it turns out a room full of <b>monkeys</b> have infact been running News International all along. <a href="http://search.twitter.com/search?q=%23hackgate" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#hackgate');">#hackgate</a></content>
|
19
|
+
<updated>2011-07-19T15:33:53Z</updated>
|
20
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1445220030/qtrBsf_normal.jpg" rel="image"/>
|
21
|
+
<twitter:geo>
|
22
|
+
</twitter:geo>
|
23
|
+
<twitter:metadata>
|
24
|
+
<twitter:result_type>recent</twitter:result_type>
|
25
|
+
</twitter:metadata>
|
26
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
27
|
+
<twitter:lang>en</twitter:lang>
|
28
|
+
<author>
|
29
|
+
<name>garyboyce (Gary Boyce)</name>
|
30
|
+
<uri>http://twitter.com/garyboyce</uri>
|
31
|
+
</author>
|
32
|
+
</entry>
|
33
|
+
<entry>
|
34
|
+
<id>tag:search.twitter.com,2005:93342753160826881</id>
|
35
|
+
<published>2011-07-19T15:33:41Z</published>
|
36
|
+
<link type="text/html" href="http://twitter.com/_3lion/statuses/93342753160826881" rel="alternate"/>
|
37
|
+
<title>Nat Geo is showing some jungle natives hunting monkeys. For God sake remove those mosaic please. It's so unnecessary.</title>
|
38
|
+
<content type="html">Nat Geo is showing some jungle natives hunting <b>monkeys</b>. For God sake remove those mosaic please. It&apos;s so unnecessary.</content>
|
39
|
+
<updated>2011-07-19T15:33:41Z</updated>
|
40
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1242179161/me_normal.jpg" rel="image"/>
|
41
|
+
<twitter:geo>
|
42
|
+
</twitter:geo>
|
43
|
+
<twitter:metadata>
|
44
|
+
<twitter:result_type>recent</twitter:result_type>
|
45
|
+
</twitter:metadata>
|
46
|
+
<twitter:source><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></twitter:source>
|
47
|
+
<twitter:lang>en</twitter:lang>
|
48
|
+
<author>
|
49
|
+
<name>_3lion (Lionel Chan)</name>
|
50
|
+
<uri>http://twitter.com/_3lion</uri>
|
51
|
+
</author>
|
52
|
+
</entry>
|
53
|
+
<entry>
|
54
|
+
<id>tag:search.twitter.com,2005:93342638845067264</id>
|
55
|
+
<published>2011-07-19T15:33:13Z</published>
|
56
|
+
<link type="text/html" href="http://twitter.com/mvlmoraes/statuses/93342638845067264" rel="alternate"/>
|
57
|
+
<title>Clipe em espanhol do Jota Quest ultrapassa Foo Fighters, Arctic Monkeys, Rihanna… e é 1º lugar na Argentina.</title>
|
58
|
+
<content type="html">Clipe em espanhol do Jota Quest ultrapassa Foo Fighters, Arctic <b>Monkeys</b>, Rihanna… e é 1º lugar na Argentina.</content>
|
59
|
+
<updated>2011-07-19T15:33:13Z</updated>
|
60
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1256709905/Sem_T_tulo-2_normal.jpg" rel="image"/>
|
61
|
+
<twitter:geo>
|
62
|
+
</twitter:geo>
|
63
|
+
<twitter:metadata>
|
64
|
+
<twitter:result_type>recent</twitter:result_type>
|
65
|
+
</twitter:metadata>
|
66
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
67
|
+
<twitter:lang>pt</twitter:lang>
|
68
|
+
<author>
|
69
|
+
<name>mvlmoraes (Marcos Moraes)</name>
|
70
|
+
<uri>http://twitter.com/mvlmoraes</uri>
|
71
|
+
</author>
|
72
|
+
</entry>
|
73
|
+
<entry>
|
74
|
+
<id>tag:search.twitter.com,2005:93342567369936896</id>
|
75
|
+
<published>2011-07-19T15:32:56Z</published>
|
76
|
+
<link type="text/html" href="http://twitter.com/SophiaIgnatidou/statuses/93342567369936896" rel="alternate"/>
|
77
|
+
<title>@iankatz1000 #notw inquiry looks like the 3 wise monkeys. The son speaks no evil, #murdoch hears no evil and rebekah sees no evil.#hacking</title>
|
78
|
+
<content type="html"><a href="http://twitter.com/iankatz1000">@iankatz1000</a> <a href="http://search.twitter.com/search?q=%23notw" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#notw');">#notw</a> inquiry looks like the 3 wise <b>monkeys</b>. The son speaks no evil, <a href="http://search.twitter.com/search?q=%23murdoch" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#murdoch');">#murdoch</a> hears no evil and rebekah sees no evil.<a href="http://search.twitter.com/search?q=%23hacking" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#hacking');">#hacking</a></content>
|
79
|
+
<updated>2011-07-19T15:32:56Z</updated>
|
80
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1258571627/sof_normal.jpg" rel="image"/>
|
81
|
+
<twitter:geo>
|
82
|
+
</twitter:geo>
|
83
|
+
<twitter:metadata>
|
84
|
+
<twitter:result_type>recent</twitter:result_type>
|
85
|
+
</twitter:metadata>
|
86
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
87
|
+
<twitter:lang>en</twitter:lang>
|
88
|
+
<author>
|
89
|
+
<name>SophiaIgnatidou (Sophia Ignatidou)</name>
|
90
|
+
<uri>http://twitter.com/SophiaIgnatidou</uri>
|
91
|
+
</author>
|
92
|
+
</entry>
|
93
|
+
<entry>
|
94
|
+
<id>tag:search.twitter.com,2005:93342529260503041</id>
|
95
|
+
<published>2011-07-19T15:32:47Z</published>
|
96
|
+
<link type="text/html" href="http://twitter.com/CokeArayaT/statuses/93342529260503041" rel="alternate"/>
|
97
|
+
<title>RT @Cynthiaiss: @CokeArayaT andai con los monkeys?///nooooooo por que???? jajajajajaja</title>
|
98
|
+
<content type="html">RT <a href="http://twitter.com/Cynthiaiss">@Cynthiaiss</a>: <a href="http://twitter.com/CokeArayaT">@CokeArayaT</a> andai con los <b>monkeys</b>?///nooooooo por que???? jajajajajaja</content>
|
99
|
+
<updated>2011-07-19T15:32:47Z</updated>
|
100
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1414439196/YO_EN_LA_PLAYA_normal.jpg" rel="image"/>
|
101
|
+
<twitter:geo>
|
102
|
+
</twitter:geo>
|
103
|
+
<twitter:metadata>
|
104
|
+
<twitter:result_type>recent</twitter:result_type>
|
105
|
+
</twitter:metadata>
|
106
|
+
<twitter:source><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></twitter:source>
|
107
|
+
<twitter:lang>es</twitter:lang>
|
108
|
+
<author>
|
109
|
+
<name>CokeArayaT (jorge araya toloza)</name>
|
110
|
+
<uri>http://twitter.com/CokeArayaT</uri>
|
111
|
+
</author>
|
112
|
+
</entry>
|
113
|
+
<entry>
|
114
|
+
<id>tag:search.twitter.com,2005:93342524063752192</id>
|
115
|
+
<published>2011-07-19T15:32:46Z</published>
|
116
|
+
<link type="text/html" href="http://twitter.com/Salz_FCB/statuses/93342524063752192" rel="alternate"/>
|
117
|
+
<title>Lolz nah! RT @yaw7fold: u wud b no1 #okbye RT @Salz_FCB: If money grew on trees girls wouldn't mind dating monkeys. :D</title>
|
118
|
+
<content type="html">Lolz nah! RT <a href="http://twitter.com/yaw7fold">@yaw7fold</a>: u wud b no1 <a href="http://search.twitter.com/search?q=%23okbye" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#okbye');">#okbye</a> RT <a href="http://twitter.com/Salz_FCB">@Salz_FCB</a>: If money grew on trees girls wouldn&apos;t mind dating <b>monkeys</b>. :D</content>
|
119
|
+
<updated>2011-07-19T15:32:46Z</updated>
|
120
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1438285841/Salz_FCB_2418038463819262988_normal.jpg" rel="image"/>
|
121
|
+
<twitter:geo>
|
122
|
+
</twitter:geo>
|
123
|
+
<twitter:metadata>
|
124
|
+
<twitter:result_type>recent</twitter:result_type>
|
125
|
+
</twitter:metadata>
|
126
|
+
<twitter:source><a href="http://www.snaptu.com" rel="nofollow">Snaptu</a></twitter:source>
|
127
|
+
<twitter:lang>en</twitter:lang>
|
128
|
+
<author>
|
129
|
+
<name>Salz_FCB (sally Mafia(lyfsuxx))</name>
|
130
|
+
<uri>http://twitter.com/Salz_FCB</uri>
|
131
|
+
</author>
|
132
|
+
</entry>
|
133
|
+
<entry>
|
134
|
+
<id>tag:search.twitter.com,2005:93342495911575552</id>
|
135
|
+
<published>2011-07-19T15:32:39Z</published>
|
136
|
+
<link type="text/html" href="http://twitter.com/KishaLynnT3/statuses/93342495911575552" rel="alternate"/>
|
137
|
+
<title>Animal Kingdom 2day :) yay hopefully i see the adorable lil monkeys hahaha</title>
|
138
|
+
<content type="html">Animal Kingdom 2day :) yay hopefully i see the adorable lil <b>monkeys</b> hahaha</content>
|
139
|
+
<updated>2011-07-19T15:32:39Z</updated>
|
140
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1445091088/image_normal.jpg" rel="image"/>
|
141
|
+
<twitter:geo>
|
142
|
+
</twitter:geo>
|
143
|
+
<twitter:metadata>
|
144
|
+
<twitter:result_type>recent</twitter:result_type>
|
145
|
+
</twitter:metadata>
|
146
|
+
<twitter:source><a href="http://twitter.com/#!/download/iphone" rel="nofollow">Twitter for iPhone</a></twitter:source>
|
147
|
+
<twitter:lang>en</twitter:lang>
|
148
|
+
<author>
|
149
|
+
<name>KishaLynnT3 (CaNdY rEdD)</name>
|
150
|
+
<uri>http://twitter.com/KishaLynnT3</uri>
|
151
|
+
</author>
|
152
|
+
</entry>
|
153
|
+
<entry>
|
154
|
+
<id>tag:search.twitter.com,2005:93342459043651584</id>
|
155
|
+
<published>2011-07-19T15:32:31Z</published>
|
156
|
+
<link type="text/html" href="http://twitter.com/CokeArayaT/statuses/93342459043651584" rel="alternate"/>
|
157
|
+
<title>RT @Cynthiaiss: @CokeArayaT andai con los monkeys?</title>
|
158
|
+
<content type="html">RT <a href="http://twitter.com/Cynthiaiss">@Cynthiaiss</a>: <a href="http://twitter.com/CokeArayaT">@CokeArayaT</a> andai con los <b>monkeys</b>?</content>
|
159
|
+
<updated>2011-07-19T15:32:31Z</updated>
|
160
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1414439196/YO_EN_LA_PLAYA_normal.jpg" rel="image"/>
|
161
|
+
<twitter:geo>
|
162
|
+
</twitter:geo>
|
163
|
+
<twitter:metadata>
|
164
|
+
<twitter:result_type>recent</twitter:result_type>
|
165
|
+
</twitter:metadata>
|
166
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
167
|
+
<twitter:lang>fr</twitter:lang>
|
168
|
+
<author>
|
169
|
+
<name>CokeArayaT (jorge araya toloza)</name>
|
170
|
+
<uri>http://twitter.com/CokeArayaT</uri>
|
171
|
+
</author>
|
172
|
+
</entry>
|
173
|
+
<entry>
|
174
|
+
<id>tag:search.twitter.com,2005:93342417830420482</id>
|
175
|
+
<published>2011-07-19T15:32:21Z</published>
|
176
|
+
<link type="text/html" href="http://twitter.com/Cynthiaiss/statuses/93342417830420482" rel="alternate"/>
|
177
|
+
<title>@CokeArayaT andai con los monkeys?</title>
|
178
|
+
<content type="html"><a href="http://twitter.com/CokeArayaT">@CokeArayaT</a> andai con los <b>monkeys</b>?</content>
|
179
|
+
<updated>2011-07-19T15:32:21Z</updated>
|
180
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1436769001/sanpedro_normal.jpg" rel="image"/>
|
181
|
+
<twitter:geo>
|
182
|
+
</twitter:geo>
|
183
|
+
<twitter:metadata>
|
184
|
+
<twitter:result_type>recent</twitter:result_type>
|
185
|
+
</twitter:metadata>
|
186
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
187
|
+
<twitter:lang>fr</twitter:lang>
|
188
|
+
<author>
|
189
|
+
<name>Cynthiaiss (Cynthia)</name>
|
190
|
+
<uri>http://twitter.com/Cynthiaiss</uri>
|
191
|
+
</author>
|
192
|
+
</entry>
|
193
|
+
<entry>
|
194
|
+
<id>tag:search.twitter.com,2005:93342363107336192</id>
|
195
|
+
<published>2011-07-19T15:32:08Z</published>
|
196
|
+
<link type="text/html" href="http://twitter.com/CraxyHouston/statuses/93342363107336192" rel="alternate"/>
|
197
|
+
<title>OMG! Jeg er HELT OPPE OG KØRE!! 100 Monkeys tickets are BOUGHT!!!! Can't wait!</title>
|
198
|
+
<content type="html">OMG! Jeg er HELT OPPE OG KØRE!! 100 <b>Monkeys</b> tickets are BOUGHT!!!! Can&apos;t wait!</content>
|
199
|
+
<updated>2011-07-19T15:32:08Z</updated>
|
200
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1444587301/DSC00106_normal.JPG" rel="image"/>
|
201
|
+
<twitter:geo>
|
202
|
+
</twitter:geo>
|
203
|
+
<twitter:metadata>
|
204
|
+
<twitter:result_type>recent</twitter:result_type>
|
205
|
+
</twitter:metadata>
|
206
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
207
|
+
<twitter:lang>da</twitter:lang>
|
208
|
+
<author>
|
209
|
+
<name>CraxyHouston (Christine Houston)</name>
|
210
|
+
<uri>http://twitter.com/CraxyHouston</uri>
|
211
|
+
</author>
|
212
|
+
</entry>
|
213
|
+
<entry>
|
214
|
+
<id>tag:search.twitter.com,2005:93342145041268737</id>
|
215
|
+
<published>2011-07-19T15:31:16Z</published>
|
216
|
+
<link type="text/html" href="http://twitter.com/trevisj/statuses/93342145041268737" rel="alternate"/>
|
217
|
+
<title>playing with monkeys (@ Barefoot N Motion) http://4sq.com/paCwAv</title>
|
218
|
+
<content type="html">playing with <b>monkeys</b> (@ Barefoot N Motion) <a href="http://4sq.com/paCwAv">http://4sq.com/paCwAv</a></content>
|
219
|
+
<updated>2011-07-19T15:31:16Z</updated>
|
220
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1429886917/CamAvi_normal.jpg" rel="image"/>
|
221
|
+
<twitter:geo>
|
222
|
+
</twitter:geo>
|
223
|
+
<twitter:metadata>
|
224
|
+
<twitter:result_type>recent</twitter:result_type>
|
225
|
+
</twitter:metadata>
|
226
|
+
<twitter:source><a href="http://foursquare.com" rel="nofollow">foursquare</a></twitter:source>
|
227
|
+
<twitter:lang>en</twitter:lang>
|
228
|
+
<author>
|
229
|
+
<name>trevisj (Trevis J. Thompson)</name>
|
230
|
+
<uri>http://twitter.com/trevisj</uri>
|
231
|
+
</author>
|
232
|
+
</entry>
|
233
|
+
<entry>
|
234
|
+
<id>tag:search.twitter.com,2005:93342071338958848</id>
|
235
|
+
<published>2011-07-19T15:30:58Z</published>
|
236
|
+
<link type="text/html" href="http://twitter.com/lizsoldtheworld/statuses/93342071338958848" rel="alternate"/>
|
237
|
+
<title>Tireia dor de não terem falado "ARCTIC MONKEYS ESTARÁ NO SWU" reclamando no Facebook. Juventude Rebelde é isso.</title>
|
238
|
+
<content type="html">Tireia dor de não terem falado &quot;ARCTIC <b>MONKEYS</b> ESTARÁ NO SWU&quot; reclamando no Facebook. Juventude Rebelde é isso.</content>
|
239
|
+
<updated>2011-07-19T15:30:58Z</updated>
|
240
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1430042751/4646_normal.JPG" rel="image"/>
|
241
|
+
<twitter:geo>
|
242
|
+
</twitter:geo>
|
243
|
+
<twitter:metadata>
|
244
|
+
<twitter:result_type>recent</twitter:result_type>
|
245
|
+
</twitter:metadata>
|
246
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
247
|
+
<twitter:lang>pt</twitter:lang>
|
248
|
+
<author>
|
249
|
+
<name>lizsoldtheworld (Lizandra Tarsilla)</name>
|
250
|
+
<uri>http://twitter.com/lizsoldtheworld</uri>
|
251
|
+
</author>
|
252
|
+
</entry>
|
253
|
+
<entry>
|
254
|
+
<id>tag:search.twitter.com,2005:93341983296331777</id>
|
255
|
+
<published>2011-07-19T15:30:37Z</published>
|
256
|
+
<link type="text/html" href="http://twitter.com/iKarley/statuses/93341983296331777" rel="alternate"/>
|
257
|
+
<title>these lil monkeys on angry birds be cheating</title>
|
258
|
+
<content type="html">these lil <b>monkeys</b> on angry birds be cheating</content>
|
259
|
+
<updated>2011-07-19T15:30:37Z</updated>
|
260
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1444033404/230352_10150593503575501_605185500_18633497_1762883_n_normal.jpg" rel="image"/>
|
261
|
+
<twitter:geo>
|
262
|
+
</twitter:geo>
|
263
|
+
<twitter:metadata>
|
264
|
+
<twitter:result_type>recent</twitter:result_type>
|
265
|
+
</twitter:metadata>
|
266
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
267
|
+
<twitter:lang>en</twitter:lang>
|
268
|
+
<author>
|
269
|
+
<name>iKarley (Ambitious Girl ¯\_(ツ)</name>
|
270
|
+
<uri>http://twitter.com/iKarley</uri>
|
271
|
+
</author>
|
272
|
+
</entry>
|
273
|
+
<entry>
|
274
|
+
<id>tag:search.twitter.com,2005:93341968255565824</id>
|
275
|
+
<published>2011-07-19T15:30:34Z</published>
|
276
|
+
<link type="text/html" href="http://twitter.com/hussain_info/statuses/93341968255565824" rel="alternate"/>
|
277
|
+
<title>@khalidalkhalifa #bahrain Defense Forced calls the oppositions monkeys! what a civilized country! is this allowed?! #BDFmonkey #shame</title>
|
278
|
+
<content type="html"><a href="http://twitter.com/khalidalkhalifa">@khalidalkhalifa</a> <a href="http://search.twitter.com/search?q=%23bahrain" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#bahrain');">#bahrain</a> Defense Forced calls the oppositions <b>monkeys</b>! what a civilized country! is this allowed?! <a href="http://search.twitter.com/search?q=%23BDFmonkey" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#BDFmonkey');">#BDFmonkey</a> <a href="http://search.twitter.com/search?q=%23shame" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#shame');">#shame</a></content>
|
279
|
+
<updated>2011-07-19T15:30:34Z</updated>
|
280
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1362190046/180021_1887317301249_1190928841_32320916_7660912_n_normal.jpg" rel="image"/>
|
281
|
+
<twitter:geo>
|
282
|
+
</twitter:geo>
|
283
|
+
<twitter:metadata>
|
284
|
+
<twitter:result_type>recent</twitter:result_type>
|
285
|
+
</twitter:metadata>
|
286
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
287
|
+
<twitter:lang>en</twitter:lang>
|
288
|
+
<author>
|
289
|
+
<name>hussain_info (Hussain Yousif)</name>
|
290
|
+
<uri>http://twitter.com/hussain_info</uri>
|
291
|
+
</author>
|
292
|
+
</entry>
|
293
|
+
<entry>
|
294
|
+
<id>tag:search.twitter.com,2005:93341960458350593</id>
|
295
|
+
<published>2011-07-19T15:30:32Z</published>
|
296
|
+
<link type="text/html" href="http://twitter.com/captainpiccard/statuses/93341960458350593" rel="alternate"/>
|
297
|
+
<title>hey @spotify your service is ok, but your client software was coded by a horde of blind zombie monkeys...</title>
|
298
|
+
<content type="html">hey <a href="http://twitter.com/spotify">@spotify</a> your service is ok, but your client software was coded by a horde of blind zombie <b>monkeys</b>...</content>
|
299
|
+
<updated>2011-07-19T15:30:32Z</updated>
|
300
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1431735553/Mobile_Photo_May_12__2010_10_33_04_AM_normal.jpg" rel="image"/>
|
301
|
+
<twitter:geo>
|
302
|
+
</twitter:geo>
|
303
|
+
<twitter:metadata>
|
304
|
+
<twitter:result_type>recent</twitter:result_type>
|
305
|
+
</twitter:metadata>
|
306
|
+
<twitter:source><a href="http://www.nibirutech.com" rel="nofollow">TwitBird</a></twitter:source>
|
307
|
+
<twitter:lang>en</twitter:lang>
|
308
|
+
<author>
|
309
|
+
<name>captainpiccard (Quase)</name>
|
310
|
+
<uri>http://twitter.com/captainpiccard</uri>
|
311
|
+
</author>
|
312
|
+
</entry>
|
313
|
+
</feed>
|
@@ -0,0 +1,313 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<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/">
|
3
|
+
<id>tag:search.twitter.com,2005:search/monkeys</id>
|
4
|
+
<link type="text/html" href="http://search.twitter.com/search?q=monkeys" rel="alternate"/>
|
5
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=monkeys" rel="self"/>
|
6
|
+
<title>monkeys - Twitter Search</title>
|
7
|
+
<link type="application/opensearchdescription+xml" href="http://search.twitter.com/opensearch.xml" rel="search"/>
|
8
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=monkeys&since_id=93342638845067264" rel="refresh"/>
|
9
|
+
<twitter:warning>since_id removed for pagination.</twitter:warning>
|
10
|
+
<updated>2011-07-19T15:33:13Z</updated>
|
11
|
+
<openSearch:itemsPerPage>15</openSearch:itemsPerPage>
|
12
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?max_id=93342638845067264&page=2&q=monkeys" rel="next"/>
|
13
|
+
<entry>
|
14
|
+
<id>tag:search.twitter.com,2005:93342638845067264</id>
|
15
|
+
<published>2011-07-19T15:33:13Z</published>
|
16
|
+
<link type="text/html" href="http://twitter.com/mvlmoraes/statuses/93342638845067264" rel="alternate"/>
|
17
|
+
<title>Clipe em espanhol do Jota Quest ultrapassa Foo Fighters, Arctic Monkeys, Rihanna… e é 1º lugar na Argentina.</title>
|
18
|
+
<content type="html">Clipe em espanhol do Jota Quest ultrapassa Foo Fighters, Arctic <b>Monkeys</b>, Rihanna… e é 1º lugar na Argentina.</content>
|
19
|
+
<updated>2011-07-19T15:33:13Z</updated>
|
20
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1256709905/Sem_T_tulo-2_normal.jpg" rel="image"/>
|
21
|
+
<twitter:geo>
|
22
|
+
</twitter:geo>
|
23
|
+
<twitter:metadata>
|
24
|
+
<twitter:result_type>recent</twitter:result_type>
|
25
|
+
</twitter:metadata>
|
26
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
27
|
+
<twitter:lang>pt</twitter:lang>
|
28
|
+
<author>
|
29
|
+
<name>mvlmoraes (Marcos Moraes)</name>
|
30
|
+
<uri>http://twitter.com/mvlmoraes</uri>
|
31
|
+
</author>
|
32
|
+
</entry>
|
33
|
+
<entry>
|
34
|
+
<id>tag:search.twitter.com,2005:93342567369936896</id>
|
35
|
+
<published>2011-07-19T15:32:56Z</published>
|
36
|
+
<link type="text/html" href="http://twitter.com/SophiaIgnatidou/statuses/93342567369936896" rel="alternate"/>
|
37
|
+
<title>@iankatz1000 #notw inquiry looks like the 3 wise monkeys. The son speaks no evil, #murdoch hears no evil and rebekah sees no evil.#hacking</title>
|
38
|
+
<content type="html"><a href="http://twitter.com/iankatz1000">@iankatz1000</a> <a href="http://search.twitter.com/search?q=%23notw" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#notw');">#notw</a> inquiry looks like the 3 wise <b>monkeys</b>. The son speaks no evil, <a href="http://search.twitter.com/search?q=%23murdoch" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#murdoch');">#murdoch</a> hears no evil and rebekah sees no evil.<a href="http://search.twitter.com/search?q=%23hacking" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#hacking');">#hacking</a></content>
|
39
|
+
<updated>2011-07-19T15:32:56Z</updated>
|
40
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1258571627/sof_normal.jpg" rel="image"/>
|
41
|
+
<twitter:geo>
|
42
|
+
</twitter:geo>
|
43
|
+
<twitter:metadata>
|
44
|
+
<twitter:result_type>recent</twitter:result_type>
|
45
|
+
</twitter:metadata>
|
46
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
47
|
+
<twitter:lang>en</twitter:lang>
|
48
|
+
<author>
|
49
|
+
<name>SophiaIgnatidou (Sophia Ignatidou)</name>
|
50
|
+
<uri>http://twitter.com/SophiaIgnatidou</uri>
|
51
|
+
</author>
|
52
|
+
</entry>
|
53
|
+
<entry>
|
54
|
+
<id>tag:search.twitter.com,2005:93342529260503041</id>
|
55
|
+
<published>2011-07-19T15:32:47Z</published>
|
56
|
+
<link type="text/html" href="http://twitter.com/CokeArayaT/statuses/93342529260503041" rel="alternate"/>
|
57
|
+
<title>RT @Cynthiaiss: @CokeArayaT andai con los monkeys?///nooooooo por que???? jajajajajaja</title>
|
58
|
+
<content type="html">RT <a href="http://twitter.com/Cynthiaiss">@Cynthiaiss</a>: <a href="http://twitter.com/CokeArayaT">@CokeArayaT</a> andai con los <b>monkeys</b>?///nooooooo por que???? jajajajajaja</content>
|
59
|
+
<updated>2011-07-19T15:32:47Z</updated>
|
60
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1414439196/YO_EN_LA_PLAYA_normal.jpg" rel="image"/>
|
61
|
+
<twitter:geo>
|
62
|
+
</twitter:geo>
|
63
|
+
<twitter:metadata>
|
64
|
+
<twitter:result_type>recent</twitter:result_type>
|
65
|
+
</twitter:metadata>
|
66
|
+
<twitter:source><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></twitter:source>
|
67
|
+
<twitter:lang>es</twitter:lang>
|
68
|
+
<author>
|
69
|
+
<name>CokeArayaT (jorge araya toloza)</name>
|
70
|
+
<uri>http://twitter.com/CokeArayaT</uri>
|
71
|
+
</author>
|
72
|
+
</entry>
|
73
|
+
<entry>
|
74
|
+
<id>tag:search.twitter.com,2005:93342524063752192</id>
|
75
|
+
<published>2011-07-19T15:32:46Z</published>
|
76
|
+
<link type="text/html" href="http://twitter.com/Salz_FCB/statuses/93342524063752192" rel="alternate"/>
|
77
|
+
<title>Lolz nah! RT @yaw7fold: u wud b no1 #okbye RT @Salz_FCB: If money grew on trees girls wouldn't mind dating monkeys. :D</title>
|
78
|
+
<content type="html">Lolz nah! RT <a href="http://twitter.com/yaw7fold">@yaw7fold</a>: u wud b no1 <a href="http://search.twitter.com/search?q=%23okbye" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#okbye');">#okbye</a> RT <a href="http://twitter.com/Salz_FCB">@Salz_FCB</a>: If money grew on trees girls wouldn&apos;t mind dating <b>monkeys</b>. :D</content>
|
79
|
+
<updated>2011-07-19T15:32:46Z</updated>
|
80
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1438285841/Salz_FCB_2418038463819262988_normal.jpg" rel="image"/>
|
81
|
+
<twitter:geo>
|
82
|
+
</twitter:geo>
|
83
|
+
<twitter:metadata>
|
84
|
+
<twitter:result_type>recent</twitter:result_type>
|
85
|
+
</twitter:metadata>
|
86
|
+
<twitter:source><a href="http://www.snaptu.com" rel="nofollow">Snaptu</a></twitter:source>
|
87
|
+
<twitter:lang>en</twitter:lang>
|
88
|
+
<author>
|
89
|
+
<name>Salz_FCB (sally Mafia(lyfsuxx))</name>
|
90
|
+
<uri>http://twitter.com/Salz_FCB</uri>
|
91
|
+
</author>
|
92
|
+
</entry>
|
93
|
+
<entry>
|
94
|
+
<id>tag:search.twitter.com,2005:93342495911575552</id>
|
95
|
+
<published>2011-07-19T15:32:39Z</published>
|
96
|
+
<link type="text/html" href="http://twitter.com/KishaLynnT3/statuses/93342495911575552" rel="alternate"/>
|
97
|
+
<title>Animal Kingdom 2day :) yay hopefully i see the adorable lil monkeys hahaha</title>
|
98
|
+
<content type="html">Animal Kingdom 2day :) yay hopefully i see the adorable lil <b>monkeys</b> hahaha</content>
|
99
|
+
<updated>2011-07-19T15:32:39Z</updated>
|
100
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1445091088/image_normal.jpg" rel="image"/>
|
101
|
+
<twitter:geo>
|
102
|
+
</twitter:geo>
|
103
|
+
<twitter:metadata>
|
104
|
+
<twitter:result_type>recent</twitter:result_type>
|
105
|
+
</twitter:metadata>
|
106
|
+
<twitter:source><a href="http://twitter.com/#!/download/iphone" rel="nofollow">Twitter for iPhone</a></twitter:source>
|
107
|
+
<twitter:lang>en</twitter:lang>
|
108
|
+
<author>
|
109
|
+
<name>KishaLynnT3 (CaNdY rEdD)</name>
|
110
|
+
<uri>http://twitter.com/KishaLynnT3</uri>
|
111
|
+
</author>
|
112
|
+
</entry>
|
113
|
+
<entry>
|
114
|
+
<id>tag:search.twitter.com,2005:93342459043651584</id>
|
115
|
+
<published>2011-07-19T15:32:31Z</published>
|
116
|
+
<link type="text/html" href="http://twitter.com/CokeArayaT/statuses/93342459043651584" rel="alternate"/>
|
117
|
+
<title>RT @Cynthiaiss: @CokeArayaT andai con los monkeys?</title>
|
118
|
+
<content type="html">RT <a href="http://twitter.com/Cynthiaiss">@Cynthiaiss</a>: <a href="http://twitter.com/CokeArayaT">@CokeArayaT</a> andai con los <b>monkeys</b>?</content>
|
119
|
+
<updated>2011-07-19T15:32:31Z</updated>
|
120
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1414439196/YO_EN_LA_PLAYA_normal.jpg" rel="image"/>
|
121
|
+
<twitter:geo>
|
122
|
+
</twitter:geo>
|
123
|
+
<twitter:metadata>
|
124
|
+
<twitter:result_type>recent</twitter:result_type>
|
125
|
+
</twitter:metadata>
|
126
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
127
|
+
<twitter:lang>fr</twitter:lang>
|
128
|
+
<author>
|
129
|
+
<name>CokeArayaT (jorge araya toloza)</name>
|
130
|
+
<uri>http://twitter.com/CokeArayaT</uri>
|
131
|
+
</author>
|
132
|
+
</entry>
|
133
|
+
<entry>
|
134
|
+
<id>tag:search.twitter.com,2005:93342417830420482</id>
|
135
|
+
<published>2011-07-19T15:32:21Z</published>
|
136
|
+
<link type="text/html" href="http://twitter.com/Cynthiaiss/statuses/93342417830420482" rel="alternate"/>
|
137
|
+
<title>@CokeArayaT andai con los monkeys?</title>
|
138
|
+
<content type="html"><a href="http://twitter.com/CokeArayaT">@CokeArayaT</a> andai con los <b>monkeys</b>?</content>
|
139
|
+
<updated>2011-07-19T15:32:21Z</updated>
|
140
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1436769001/sanpedro_normal.jpg" rel="image"/>
|
141
|
+
<twitter:geo>
|
142
|
+
</twitter:geo>
|
143
|
+
<twitter:metadata>
|
144
|
+
<twitter:result_type>recent</twitter:result_type>
|
145
|
+
</twitter:metadata>
|
146
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
147
|
+
<twitter:lang>fr</twitter:lang>
|
148
|
+
<author>
|
149
|
+
<name>Cynthiaiss (Cynthia)</name>
|
150
|
+
<uri>http://twitter.com/Cynthiaiss</uri>
|
151
|
+
</author>
|
152
|
+
</entry>
|
153
|
+
<entry>
|
154
|
+
<id>tag:search.twitter.com,2005:93342363107336192</id>
|
155
|
+
<published>2011-07-19T15:32:08Z</published>
|
156
|
+
<link type="text/html" href="http://twitter.com/CraxyHouston/statuses/93342363107336192" rel="alternate"/>
|
157
|
+
<title>OMG! Jeg er HELT OPPE OG KØRE!! 100 Monkeys tickets are BOUGHT!!!! Can't wait!</title>
|
158
|
+
<content type="html">OMG! Jeg er HELT OPPE OG KØRE!! 100 <b>Monkeys</b> tickets are BOUGHT!!!! Can&apos;t wait!</content>
|
159
|
+
<updated>2011-07-19T15:32:08Z</updated>
|
160
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1444587301/DSC00106_normal.JPG" rel="image"/>
|
161
|
+
<twitter:geo>
|
162
|
+
</twitter:geo>
|
163
|
+
<twitter:metadata>
|
164
|
+
<twitter:result_type>recent</twitter:result_type>
|
165
|
+
</twitter:metadata>
|
166
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
167
|
+
<twitter:lang>da</twitter:lang>
|
168
|
+
<author>
|
169
|
+
<name>CraxyHouston (Christine Houston)</name>
|
170
|
+
<uri>http://twitter.com/CraxyHouston</uri>
|
171
|
+
</author>
|
172
|
+
</entry>
|
173
|
+
<entry>
|
174
|
+
<id>tag:search.twitter.com,2005:93342145041268737</id>
|
175
|
+
<published>2011-07-19T15:31:16Z</published>
|
176
|
+
<link type="text/html" href="http://twitter.com/trevisj/statuses/93342145041268737" rel="alternate"/>
|
177
|
+
<title>playing with monkeys (@ Barefoot N Motion) http://4sq.com/paCwAv</title>
|
178
|
+
<content type="html">playing with <b>monkeys</b> (@ Barefoot N Motion) <a href="http://4sq.com/paCwAv">http://4sq.com/paCwAv</a></content>
|
179
|
+
<updated>2011-07-19T15:31:16Z</updated>
|
180
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1429886917/CamAvi_normal.jpg" rel="image"/>
|
181
|
+
<twitter:geo>
|
182
|
+
</twitter:geo>
|
183
|
+
<twitter:metadata>
|
184
|
+
<twitter:result_type>recent</twitter:result_type>
|
185
|
+
</twitter:metadata>
|
186
|
+
<twitter:source><a href="http://foursquare.com" rel="nofollow">foursquare</a></twitter:source>
|
187
|
+
<twitter:lang>en</twitter:lang>
|
188
|
+
<author>
|
189
|
+
<name>trevisj (Trevis J. Thompson)</name>
|
190
|
+
<uri>http://twitter.com/trevisj</uri>
|
191
|
+
</author>
|
192
|
+
</entry>
|
193
|
+
<entry>
|
194
|
+
<id>tag:search.twitter.com,2005:93342071338958848</id>
|
195
|
+
<published>2011-07-19T15:30:58Z</published>
|
196
|
+
<link type="text/html" href="http://twitter.com/lizsoldtheworld/statuses/93342071338958848" rel="alternate"/>
|
197
|
+
<title>Tireia dor de não terem falado "ARCTIC MONKEYS ESTARÁ NO SWU" reclamando no Facebook. Juventude Rebelde é isso.</title>
|
198
|
+
<content type="html">Tireia dor de não terem falado &quot;ARCTIC <b>MONKEYS</b> ESTARÁ NO SWU&quot; reclamando no Facebook. Juventude Rebelde é isso.</content>
|
199
|
+
<updated>2011-07-19T15:30:58Z</updated>
|
200
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1430042751/4646_normal.JPG" rel="image"/>
|
201
|
+
<twitter:geo>
|
202
|
+
</twitter:geo>
|
203
|
+
<twitter:metadata>
|
204
|
+
<twitter:result_type>recent</twitter:result_type>
|
205
|
+
</twitter:metadata>
|
206
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
207
|
+
<twitter:lang>pt</twitter:lang>
|
208
|
+
<author>
|
209
|
+
<name>lizsoldtheworld (Lizandra Tarsilla)</name>
|
210
|
+
<uri>http://twitter.com/lizsoldtheworld</uri>
|
211
|
+
</author>
|
212
|
+
</entry>
|
213
|
+
<entry>
|
214
|
+
<id>tag:search.twitter.com,2005:93341983296331777</id>
|
215
|
+
<published>2011-07-19T15:30:37Z</published>
|
216
|
+
<link type="text/html" href="http://twitter.com/iKarley/statuses/93341983296331777" rel="alternate"/>
|
217
|
+
<title>these lil monkeys on angry birds be cheating</title>
|
218
|
+
<content type="html">these lil <b>monkeys</b> on angry birds be cheating</content>
|
219
|
+
<updated>2011-07-19T15:30:37Z</updated>
|
220
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1444033404/230352_10150593503575501_605185500_18633497_1762883_n_normal.jpg" rel="image"/>
|
221
|
+
<twitter:geo>
|
222
|
+
</twitter:geo>
|
223
|
+
<twitter:metadata>
|
224
|
+
<twitter:result_type>recent</twitter:result_type>
|
225
|
+
</twitter:metadata>
|
226
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
227
|
+
<twitter:lang>en</twitter:lang>
|
228
|
+
<author>
|
229
|
+
<name>iKarley (Ambitious Girl ¯\_(ツ)</name>
|
230
|
+
<uri>http://twitter.com/iKarley</uri>
|
231
|
+
</author>
|
232
|
+
</entry>
|
233
|
+
<entry>
|
234
|
+
<id>tag:search.twitter.com,2005:93341968255565824</id>
|
235
|
+
<published>2011-07-19T15:30:34Z</published>
|
236
|
+
<link type="text/html" href="http://twitter.com/hussain_info/statuses/93341968255565824" rel="alternate"/>
|
237
|
+
<title>@khalidalkhalifa #bahrain Defense Forced calls the oppositions monkeys! what a civilized country! is this allowed?! #BDFmonkey #shame</title>
|
238
|
+
<content type="html"><a href="http://twitter.com/khalidalkhalifa">@khalidalkhalifa</a> <a href="http://search.twitter.com/search?q=%23bahrain" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#bahrain');">#bahrain</a> Defense Forced calls the oppositions <b>monkeys</b>! what a civilized country! is this allowed?! <a href="http://search.twitter.com/search?q=%23BDFmonkey" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#BDFmonkey');">#BDFmonkey</a> <a href="http://search.twitter.com/search?q=%23shame" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#shame');">#shame</a></content>
|
239
|
+
<updated>2011-07-19T15:30:34Z</updated>
|
240
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1362190046/180021_1887317301249_1190928841_32320916_7660912_n_normal.jpg" rel="image"/>
|
241
|
+
<twitter:geo>
|
242
|
+
</twitter:geo>
|
243
|
+
<twitter:metadata>
|
244
|
+
<twitter:result_type>recent</twitter:result_type>
|
245
|
+
</twitter:metadata>
|
246
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
247
|
+
<twitter:lang>en</twitter:lang>
|
248
|
+
<author>
|
249
|
+
<name>hussain_info (Hussain Yousif)</name>
|
250
|
+
<uri>http://twitter.com/hussain_info</uri>
|
251
|
+
</author>
|
252
|
+
</entry>
|
253
|
+
<entry>
|
254
|
+
<id>tag:search.twitter.com,2005:93341960458350593</id>
|
255
|
+
<published>2011-07-19T15:30:32Z</published>
|
256
|
+
<link type="text/html" href="http://twitter.com/captainpiccard/statuses/93341960458350593" rel="alternate"/>
|
257
|
+
<title>hey @spotify your service is ok, but your client software was coded by a horde of blind zombie monkeys...</title>
|
258
|
+
<content type="html">hey <a href="http://twitter.com/spotify">@spotify</a> your service is ok, but your client software was coded by a horde of blind zombie <b>monkeys</b>...</content>
|
259
|
+
<updated>2011-07-19T15:30:32Z</updated>
|
260
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1431735553/Mobile_Photo_May_12__2010_10_33_04_AM_normal.jpg" rel="image"/>
|
261
|
+
<twitter:geo>
|
262
|
+
</twitter:geo>
|
263
|
+
<twitter:metadata>
|
264
|
+
<twitter:result_type>recent</twitter:result_type>
|
265
|
+
</twitter:metadata>
|
266
|
+
<twitter:source><a href="http://www.nibirutech.com" rel="nofollow">TwitBird</a></twitter:source>
|
267
|
+
<twitter:lang>en</twitter:lang>
|
268
|
+
<author>
|
269
|
+
<name>captainpiccard (Quase)</name>
|
270
|
+
<uri>http://twitter.com/captainpiccard</uri>
|
271
|
+
</author>
|
272
|
+
</entry>
|
273
|
+
<entry>
|
274
|
+
<id>tag:search.twitter.com,2005:93341908339916800</id>
|
275
|
+
<published>2011-07-19T15:30:19Z</published>
|
276
|
+
<link type="text/html" href="http://twitter.com/mollylovesbieb/statuses/93341908339916800" rel="alternate"/>
|
277
|
+
<title>RT @annielovesJB: @mollylovesbieb HOLY FLYING MONKEYS, i feel like you are passing my edge of comfort. Kaycoolbye</title>
|
278
|
+
<content type="html">RT <a href="http://twitter.com/annielovesJB">@annielovesJB</a>: <a href="http://twitter.com/mollylovesbieb">@mollylovesbieb</a> HOLY FLYING <b>MONKEYS</b>, i feel like you are passing my edge of comfort. Kaycoolbye</content>
|
279
|
+
<updated>2011-07-19T15:30:19Z</updated>
|
280
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1443234404/Photo_on_2011-06-16_at_22.12__5_normal.jpg" rel="image"/>
|
281
|
+
<twitter:geo>
|
282
|
+
</twitter:geo>
|
283
|
+
<twitter:metadata>
|
284
|
+
<twitter:result_type>recent</twitter:result_type>
|
285
|
+
</twitter:metadata>
|
286
|
+
<twitter:source><a href="http://twitter.com/devices" rel="nofollow">txt</a></twitter:source>
|
287
|
+
<twitter:lang>en</twitter:lang>
|
288
|
+
<author>
|
289
|
+
<name>mollylovesbieb (Molly)</name>
|
290
|
+
<uri>http://twitter.com/mollylovesbieb</uri>
|
291
|
+
</author>
|
292
|
+
</entry>
|
293
|
+
<entry>
|
294
|
+
<id>tag:search.twitter.com,2005:93341901650001922</id>
|
295
|
+
<published>2011-07-19T15:30:18Z</published>
|
296
|
+
<link type="text/html" href="http://twitter.com/PepPrim/statuses/93341901650001922" rel="alternate"/>
|
297
|
+
<title>Històries x no dormir 3 - 'L'origen del planeta dels simis fotògrafs??': http://goo.gl/hkuZ9, #Copyright @La_EX_</title>
|
298
|
+
<content type="html">Històries x no dormir 3 - &apos;L&apos;origen del planeta dels simis fotògrafs??&apos;: <a href="http://goo.gl/hkuZ9">http://goo.gl/hkuZ9</a>, <a href="http://search.twitter.com/search?q=%23Copyright" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#Copyright');">#Copyright</a> <a href="http://twitter.com/La_EX_">@La_EX_</a></content>
|
299
|
+
<updated>2011-07-19T15:30:18Z</updated>
|
300
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1443620772/n8hlHRD8_normal" rel="image"/>
|
301
|
+
<twitter:geo>
|
302
|
+
</twitter:geo>
|
303
|
+
<twitter:metadata>
|
304
|
+
<twitter:result_type>recent</twitter:result_type>
|
305
|
+
</twitter:metadata>
|
306
|
+
<twitter:source><a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a></twitter:source>
|
307
|
+
<twitter:lang>eo</twitter:lang>
|
308
|
+
<author>
|
309
|
+
<name>PepPrim (Pep Prim)</name>
|
310
|
+
<uri>http://twitter.com/PepPrim</uri>
|
311
|
+
</author>
|
312
|
+
</entry>
|
313
|
+
</feed>
|
data/test/helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'test/unit'
|
11
|
+
require 'shoulda'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
+
require 'feedzirra-redis'
|
16
|
+
|
17
|
+
DataMapper.setup(:default, {:adapter => 'redis'})
|
18
|
+
FEED_URL = 'http://search.twitter.com/search.atom?q=monkeys'
|
19
|
+
|
20
|
+
require 'fakeweb'
|
21
|
+
FakeWeb.register_uri( :get, FEED_URL,
|
22
|
+
:body => File.read('test/fixtures/monkeys_old.atom') )
|
23
|
+
|
24
|
+
class Test::Unit::TestCase
|
25
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestFeedzirraRedis < Test::Unit::TestCase
|
4
|
+
include FeedzirraRedis
|
5
|
+
|
6
|
+
def setup
|
7
|
+
Feed.all.destroy
|
8
|
+
Entry.all.destroy
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'A feed' do
|
12
|
+
|
13
|
+
should 'can be saved with no arguments' do
|
14
|
+
redis_feed = Feed.new
|
15
|
+
redis_feed.save
|
16
|
+
assert Feed.count == 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'fetch_and_parse' do
|
21
|
+
should 'create a feed' do
|
22
|
+
Feed.fetch_and_parse(FEED_URL)
|
23
|
+
assert Feed.count == 1
|
24
|
+
end
|
25
|
+
|
26
|
+
should 'return a feed object' do
|
27
|
+
feed = Feed.fetch_and_parse(FEED_URL)
|
28
|
+
assert feed.kind_of? Feed
|
29
|
+
end
|
30
|
+
|
31
|
+
should 'create some entries' do
|
32
|
+
Feed.fetch_and_parse(FEED_URL)
|
33
|
+
assert Feed.first.entries.size >= 0
|
34
|
+
end
|
35
|
+
|
36
|
+
should 'not create a second feed if an existing feed has identical feed_url' do
|
37
|
+
Feed.fetch_and_parse(FEED_URL)
|
38
|
+
assert Feed.count == 1
|
39
|
+
Feed.fetch_and_parse(FEED_URL)
|
40
|
+
assert Feed.count == 1
|
41
|
+
end
|
42
|
+
|
43
|
+
should 'add more entries for the same feed url' do
|
44
|
+
feed = Feed.fetch_and_parse(FEED_URL)
|
45
|
+
count_entries = feed.entries.count
|
46
|
+
FakeWeb.register_uri( :get, FEED_URL,
|
47
|
+
:body => File.read('test/fixtures/monkeys_new.atom') )
|
48
|
+
Feed.fetch_and_parse(FEED_URL)
|
49
|
+
assert count_entries < Feed.entries.count
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: feedzirra-redis
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Logan Koester
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-07-19 00:00:00 -04:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: dm-redis-adapter
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: feedzirra
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: "0"
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: i18n
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "0"
|
46
|
+
type: :runtime
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: shoulda
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: bundler
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 1.0.0
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: jeweler
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 1.6.2
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rcov
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: "0"
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *id007
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: fakeweb
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: "0"
|
101
|
+
type: :development
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: *id008
|
104
|
+
description: Dead simple feed persistance... because you shouldn't need a MySQL server just to include a few RSS items on a page
|
105
|
+
email: lkoester@agoragames.com
|
106
|
+
executables: []
|
107
|
+
|
108
|
+
extensions: []
|
109
|
+
|
110
|
+
extra_rdoc_files:
|
111
|
+
- LICENSE.txt
|
112
|
+
- README.rdoc
|
113
|
+
files:
|
114
|
+
- .document
|
115
|
+
- .rvmrc
|
116
|
+
- Gemfile
|
117
|
+
- Gemfile.lock
|
118
|
+
- LICENSE.txt
|
119
|
+
- README.rdoc
|
120
|
+
- Rakefile
|
121
|
+
- VERSION
|
122
|
+
- feedzirra-redis.gemspec
|
123
|
+
- lib/feedzirra-redis.rb
|
124
|
+
- test/fixtures/monkeys_new.atom
|
125
|
+
- test/fixtures/monkeys_old.atom
|
126
|
+
- test/helper.rb
|
127
|
+
- test/test_feedzirra-redis.rb
|
128
|
+
has_rdoc: true
|
129
|
+
homepage: http://github.com/logankoester/feedzirra-redis
|
130
|
+
licenses:
|
131
|
+
- MIT
|
132
|
+
post_install_message:
|
133
|
+
rdoc_options: []
|
134
|
+
|
135
|
+
require_paths:
|
136
|
+
- lib
|
137
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
hash: 4300112489055779125
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
none: false
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: "0"
|
152
|
+
requirements: []
|
153
|
+
|
154
|
+
rubyforge_project:
|
155
|
+
rubygems_version: 1.6.2
|
156
|
+
signing_key:
|
157
|
+
specification_version: 3
|
158
|
+
summary: Dead simple feed persistance
|
159
|
+
test_files: []
|
160
|
+
|