szimek-twitter 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History +174 -0
- data/License +20 -0
- data/Notes +33 -0
- data/README.rdoc +13 -0
- data/Rakefile +103 -0
- data/VERSION.yml +4 -0
- data/examples/connect.rb +30 -0
- data/examples/friendship_existance.rb +13 -0
- data/examples/helpers/config_store.rb +38 -0
- data/examples/httpauth.rb +11 -0
- data/examples/search.rb +15 -0
- data/examples/timeline.rb +19 -0
- data/examples/update.rb +11 -0
- data/examples/user.rb +5 -0
- data/lib/twitter.rb +56 -0
- data/lib/twitter/base.rb +165 -0
- data/lib/twitter/httpauth.rb +26 -0
- data/lib/twitter/no_auth.rb +14 -0
- data/lib/twitter/oauth.rb +34 -0
- data/lib/twitter/rails/controller.rb +49 -0
- data/lib/twitter/rails/helpers.rb +17 -0
- data/lib/twitter/rails/initializer.rb +33 -0
- data/lib/twitter/request.rb +101 -0
- data/lib/twitter/search.rb +106 -0
- data/test/fixtures/firehose.json +1 -0
- data/test/fixtures/friends_timeline.json +1 -0
- data/test/fixtures/rate_limit_exceeded.json +1 -0
- data/test/fixtures/replies.json +1 -0
- data/test/fixtures/search.json +1 -0
- data/test/fixtures/search_from_jnunemaker.json +1 -0
- data/test/fixtures/status.json +1 -0
- data/test/fixtures/user.json +1 -0
- data/test/fixtures/user_timeline.json +1 -0
- data/test/test_helper.rb +36 -0
- data/test/twitter/base_test.rb +118 -0
- data/test/twitter/httpauth_test.rb +50 -0
- data/test/twitter/no_auth_test.rb +25 -0
- data/test/twitter/oauth_test.rb +71 -0
- data/test/twitter/request_test.rb +203 -0
- data/test/twitter/search_test.rb +144 -0
- data/test/twitter_test.rb +19 -0
- metadata +187 -0
@@ -0,0 +1,101 @@
|
|
1
|
+
module Twitter
|
2
|
+
class Request
|
3
|
+
extend Forwardable
|
4
|
+
|
5
|
+
def self.get(client, path, options={})
|
6
|
+
new(client, :get, path, options).perform
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.post(client, path, options={})
|
10
|
+
new(client, :post, path, options).perform
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :client, :method, :path, :options
|
14
|
+
|
15
|
+
def_delegators :client, :get, :post
|
16
|
+
|
17
|
+
def initialize(client, method, path, options={})
|
18
|
+
@client, @method, @path, @options = client, method, path, options
|
19
|
+
end
|
20
|
+
|
21
|
+
def uri
|
22
|
+
@uri ||= begin
|
23
|
+
uri = URI.parse(path)
|
24
|
+
|
25
|
+
if options[:query] && options[:query] != {}
|
26
|
+
uri.query = to_query(options[:query])
|
27
|
+
end
|
28
|
+
|
29
|
+
uri.to_s
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def perform
|
34
|
+
make_friendly(send("perform_#{method}"))
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def perform_get
|
39
|
+
send(:get, uri, options[:headers])
|
40
|
+
end
|
41
|
+
|
42
|
+
def perform_post
|
43
|
+
send(:post, uri, options[:body], options[:headers])
|
44
|
+
end
|
45
|
+
|
46
|
+
def make_friendly(response)
|
47
|
+
raise_errors(response)
|
48
|
+
mash(parse(response))
|
49
|
+
end
|
50
|
+
|
51
|
+
def raise_errors(response)
|
52
|
+
case response.code.to_i
|
53
|
+
when 400
|
54
|
+
data = parse(response)
|
55
|
+
raise RateLimitExceeded.new(data), "(#{response.code}): #{response.message} - #{data['error'] if data}"
|
56
|
+
when 401
|
57
|
+
data = parse(response)
|
58
|
+
raise Unauthorized.new(data), "(#{response.code}): #{response.message} - #{data['error'] if data}"
|
59
|
+
when 403
|
60
|
+
data = parse(response)
|
61
|
+
raise General.new(data), "(#{response.code}): #{response.message} - #{data['error'] if data}"
|
62
|
+
when 404
|
63
|
+
raise NotFound, "(#{response.code}): #{response.message}"
|
64
|
+
when 500
|
65
|
+
raise InformTwitter, "Twitter had an internal error. Please let them know in the group. (#{response.code}): #{response.message}"
|
66
|
+
when 502..503
|
67
|
+
raise Unavailable, "(#{response.code}): #{response.message}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def parse(response)
|
72
|
+
Crack::JSON.parse(response.body)
|
73
|
+
end
|
74
|
+
|
75
|
+
def mash(obj)
|
76
|
+
if obj.is_a?(Array)
|
77
|
+
obj.map { |item| make_mash_with_consistent_hash(item) }
|
78
|
+
elsif obj.is_a?(Hash)
|
79
|
+
make_mash_with_consistent_hash(obj)
|
80
|
+
else
|
81
|
+
obj
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Lame workaround for the fact that mash doesn't hash correctly
|
86
|
+
def make_mash_with_consistent_hash(obj)
|
87
|
+
m = Mash.new(obj)
|
88
|
+
def m.hash
|
89
|
+
inspect.hash
|
90
|
+
end
|
91
|
+
return m
|
92
|
+
end
|
93
|
+
|
94
|
+
def to_query(options)
|
95
|
+
options.inject([]) do |collection, opt|
|
96
|
+
collection << "#{opt[0]}=#{opt[1]}"
|
97
|
+
collection
|
98
|
+
end * '&'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
module Twitter
|
2
|
+
class Search
|
3
|
+
include HTTParty
|
4
|
+
include Enumerable
|
5
|
+
|
6
|
+
attr_reader :result, :query
|
7
|
+
|
8
|
+
def initialize(q=nil)
|
9
|
+
clear
|
10
|
+
containing(q) if q && q.strip != ''
|
11
|
+
end
|
12
|
+
|
13
|
+
def from(user)
|
14
|
+
@query[:q] << "from:#{user}"
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def to(user)
|
19
|
+
@query[:q] << "to:#{user}"
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def referencing(user)
|
24
|
+
@query[:q] << "@#{user}"
|
25
|
+
self
|
26
|
+
end
|
27
|
+
alias :references :referencing
|
28
|
+
alias :ref :referencing
|
29
|
+
|
30
|
+
def containing(word)
|
31
|
+
@query[:q] << "#{word}"
|
32
|
+
self
|
33
|
+
end
|
34
|
+
alias :contains :containing
|
35
|
+
|
36
|
+
# adds filtering based on hash tag ie: #twitter
|
37
|
+
def hashed(tag)
|
38
|
+
@query[:q] << "##{tag}"
|
39
|
+
self
|
40
|
+
end
|
41
|
+
|
42
|
+
# lang must be ISO 639-1 code ie: en, fr, de, ja, etc.
|
43
|
+
#
|
44
|
+
# when I tried en it limited my results a lot and took
|
45
|
+
# out several tweets that were english so i'd avoid
|
46
|
+
# this unless you really want it
|
47
|
+
def lang(lang)
|
48
|
+
@query[:lang] = lang
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
# Limits the number of results per page
|
53
|
+
def per_page(num)
|
54
|
+
@query[:rpp] = num
|
55
|
+
self
|
56
|
+
end
|
57
|
+
|
58
|
+
# Which page of results to fetch
|
59
|
+
def page(num)
|
60
|
+
@query[:page] = num
|
61
|
+
self
|
62
|
+
end
|
63
|
+
|
64
|
+
# Only searches tweets since a given id.
|
65
|
+
# Recommended to use this when possible.
|
66
|
+
def since(since_id)
|
67
|
+
@query[:since_id] = since_id
|
68
|
+
self
|
69
|
+
end
|
70
|
+
|
71
|
+
# Search tweets by longitude, latitude and a given range.
|
72
|
+
# Ranges like 25km and 50mi work.
|
73
|
+
def geocode(long, lat, range)
|
74
|
+
@query[:geocode] = [long, lat, range].join(',')
|
75
|
+
self
|
76
|
+
end
|
77
|
+
|
78
|
+
def max(id)
|
79
|
+
@query[:max_id] = id
|
80
|
+
self
|
81
|
+
end
|
82
|
+
|
83
|
+
# Clears all the query filters to make a new search
|
84
|
+
def clear
|
85
|
+
@fetch = nil
|
86
|
+
@query = {}
|
87
|
+
@query[:q] = []
|
88
|
+
self
|
89
|
+
end
|
90
|
+
|
91
|
+
def fetch(force=false)
|
92
|
+
if @fetch.nil? || force
|
93
|
+
query = @query.dup
|
94
|
+
query[:q] = query[:q].join(' ')
|
95
|
+
response = self.class.get('http://search.twitter.com/search.json', :query => query, :format => :json)
|
96
|
+
@fetch = Mash.new(response)
|
97
|
+
end
|
98
|
+
|
99
|
+
@fetch
|
100
|
+
end
|
101
|
+
|
102
|
+
def each
|
103
|
+
fetch()['results'].each { |r| yield r }
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"user":{"followers_count":74,"description":"This is a p2p torrent feed from various online torrent sources.","url":"","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Earth","screen_name":"P2P_Torrents","name":"P2P Torrents","id":27694960},"text":"#torrents Ultimativer Flirt Guide - In 10 Minuten jede Frau erobern: Ultimativer Flirt Guide - In 10 Mi.. http:\/\/tinyurl.com\/d3okh4","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:28 +0000 2009","source":"<a href=\"http:\/\/twitterfeed.com\">twitterfeed<\/a>","in_reply_to_status_id":null,"id":1447485843},{"user":{"followers_count":136860,"description":"I'm MO-RIS. Freestyle,Freeride,Freelife. MountainBike and BMX rider. My favorite Music is Jazz, Funk and Hip-Hop. Sorry, I use Japanese only.","url":"http:\/\/iddy.jp\/profile\/mo-ris\/","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Okazaki, Aichi, Japan","screen_name":"moooris","name":"MO-RiS \/ もーりす","id":14523894},"text":"@moccai はい、がんばってくださいねっ! [at Home]","truncated":false,"favorited":false,"in_reply_to_user_id":7796422,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"<a href=\"http:\/\/d.hatena.ne.jp\/Kiri_Feather\/20071121\">Tween<\/a>","in_reply_to_status_id":1447479571,"id":1447485827},{"user":{"followers_count":69,"description":"","url":"http:\/\/frosh.tumblr.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Mexico","screen_name":"fer_sure","name":"fer","id":13189472},"text":"Terminando de comer en casa de @isaak182","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485826},{"user":{"followers_count":296,"description":"Kevin Yarr, Web Journalist","url":"http:\/\/www.cbc.ca\/pei\/","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Charlottetown","screen_name":"CBCPEI","name":"CBC P.E.I.","id":18999995},"text":"UPDATE coming. Two of three deputies to return PNP money","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485825},{"user":{"followers_count":129,"description":"Heyy :)","url":"http:\/\/www.myspace.com\/smegzx","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"England","screen_name":"Megzx","name":"Megan.","id":23615322},"text":"\"I Will Break.., Into Your Thoughts.., With Whats Written On Myy Heart..\" (8) =)","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485823},{"user":{"followers_count":2,"description":"","url":"","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"","screen_name":"fatherearth2011","name":"burt m","id":24932539},"text":"Has found his research for his PhD in plant biology. Evolution of floral color, watch out Cambridge.","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>","in_reply_to_status_id":null,"id":1447485820},{"user":{"followers_count":148,"description":"Director of Public Affairs, Minnesota House Republican Caucus","url":"http:\/\/www.mnhousegop.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"","screen_name":"kwatt","name":"Kevin Watterson","id":9082192},"text":"It's all garbage to me. http:\/\/twitpic.com\/2rz8v","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:28 +0000 2009","source":"<a href=\"http:\/\/twitterfon.net\/\">TwitterFon<\/a>","in_reply_to_status_id":null,"id":1447485819},{"user":{"followers_count":1307,"description":"Wife, homeschool mom & Arbonne Rep #15970532. I specialize in Arbonne's weightloss program. I can help you lose weight! Blog address: http:\/\/bit.ly\/zQnHH","url":"http:\/\/www.peggyalvarado.myarbonne.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"","screen_name":"peggyalvarado","name":"Peggy Alvarado","id":21317064},"text":"Follow Friday! @thoughtcoach #followfriday","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485817},{"user":{"followers_count":24,"description":"I'm me.","url":"","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"","screen_name":"Crazier_Me","name":"lisamaries.","id":24554902},"text":"@RiRi_Twin Wow. Once. Okay, whatever. Why can't you just calm down and get over it?? Or you wanna fight?!","truncated":false,"favorited":false,"in_reply_to_user_id":24706147,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"web","in_reply_to_status_id":1447471539,"id":1447485815},{"user":{"followers_count":24,"description":"I'm Steve. I like scary things, viddya games, and being a ninja. And Notorious Fluffy T","url":"http:\/\/www.myspace.com\/psychodboy","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Elkridge MD","screen_name":"ShinobiSteve","name":"Steve Hinz","id":20456870},"text":"@laylakayleigh I get my mom books or dvds or sweets usually. She's not open on things she wants when I ask.","truncated":false,"favorited":false,"in_reply_to_user_id":17349900,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"<a href=\"http:\/\/www.twhirl.org\/\">twhirl<\/a>","in_reply_to_status_id":1447448955,"id":1447485813},{"user":{"followers_count":49,"description":"i AM UNiQUE iN MY OWN WAY!! i AM A liVING WALKiNG BARBi3..i SET MORE THAN TRENDS.i iNSPiRE...","url":"","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"cottage grove, mn","screen_name":"AD3OLA","name":"Adeola Gbadebo","id":26118515},"text":"i don't see myself as concided..i am just confident and i carry myself high.. i mean is that concided..damnnn there is a difference there..","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485811},{"user":{"followers_count":659,"description":"An advertising\/social media\/interactive junkie who lives on the 'net","url":"http:\/\/www.brentter.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Atlanta, GA","screen_name":"brentter","name":"Brent Terrazas","id":6426682},"text":"@stuntdubl http:\/\/seopro.com.au\/free-seo-tools\/new\/link-checker\/ and http:\/\/seoanalytic.com\/tools\/internal_pagerank_checker\/","truncated":false,"favorited":false,"in_reply_to_user_id":1359731,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"web","in_reply_to_status_id":1447477924,"id":1447485810},{"user":{"followers_count":10,"description":"Match Results from The Blue Alliance. More at @thebluealliance and http:\/\/www.thebluealliance.net","url":"http:\/\/www.thebluealliance.net","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"","screen_name":"TBAMatchResults","name":"TBA Match Results","id":27573276},"text":"2518, 2052, 3082 lost to 2498, 2529, 2574 [46 to 73] in Qualifications 44 at Minnesota 10000 Lakes Regional","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485809},{"user":{"followers_count":431,"description":"I am living well and learning every day. I am a marketer who founded Ciena's community initiative and I help them find success with all their web initiatives.","url":"http:\/\/www.ciena.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Massachusetts","screen_name":"NaomiMarr","name":"Naomi Marr","id":14419908},"text":"RT @coryereed: Check out video from visit earlier this week at @Ciena Innovation Lab. http:\/\/bit.ly\/84DJ5 (Sorry, no @britneyspears cameos)","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"<a href=\"http:\/\/www.tweetdeck.com\/\">TweetDeck<\/a>","in_reply_to_status_id":null,"id":1447485808},{"user":{"followers_count":34,"description":"","url":"","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"","screen_name":"Lilwildgirlrawr","name":"Lizzie is da name","id":20962388},"text":"Dis qurl is sinqle iqht here! Ohh yeah man...Flirtinq is qonna start toniqht at da partay<3","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485807},{"user":{"followers_count":0,"description":null,"url":null,"profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":null,"screen_name":"elliethomasbubz","name":"ellie thomas","id":28426326},"text":"waitinf for the video :)","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485806},{"user":{"followers_count":427,"description":"Restaurant Recruiter \/ Industry Blogger \/ LifeChurch.tv partner","url":"http:\/\/www.restaurantmanagerresources.blogspot.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Oklahoma City, OK","screen_name":"headhunterbrian","name":"Brian Bruce","id":15346984},"text":"@sunnythomas Dave Ramsey rocks! We're debt free but for the house thanks in large part to him.","truncated":false,"favorited":false,"in_reply_to_user_id":14160713,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":1447461266,"id":1447485805},{"user":{"followers_count":469,"description":"Christian. Student. Filmmaker. Daydreamer. Real dude. OBSESSED w\/ EVERYTHING 80'S-90'S!!! Allergic to fake.","url":"http:\/\/www.myspace.com\/itsboywonder","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"Orange County, Cali","screen_name":"Hollywood_Trey","name":"Trumaine Smith","id":23739806},"text":"@jenskiii About what?","truncated":false,"favorited":false,"in_reply_to_user_id":18823582,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":1447473524,"id":1447485804},{"user":{"followers_count":220,"description":"Azz Monkey Clothing is a premium clothing brand offering the very best in urban lifestyle, skateboard, and snowboard apparel.","url":"http:\/\/www.azzmonkey.com","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":"SnowDirtWaterSidewalkStreets","screen_name":"azzmonkey","name":"Azz Monkey Clothing","id":17183594},"text":"How are enjoying the new digs?","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:29 +0000 2009","source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>","in_reply_to_status_id":null,"id":1447485803},{"user":{"followers_count":13,"description":null,"url":null,"profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","protected":false,"location":null,"screen_name":"ljross","name":"Liam Ross","id":20691904},"text":"Don't understand the need for suicidal thoughts to include murder, too. For instance, in Binghamton. http:\/\/tinyurl.com\/crrg3c","truncated":false,"favorited":false,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 20:13:27 +0000 2009","source":"web","in_reply_to_status_id":null,"id":1447485799}]
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"in_reply_to_screen_name":null,"user":{"profile_sidebar_border_color":"181A1E","description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"friends_count":161,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"notifications":false,"profile_background_color":"1A1B1F","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","profile_background_tile":false,"profile_text_color":"666666","followers_count":1231,"protected":false,"favourites_count":73,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_link_color":"2FC2EF","statuses_count":4664,"profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif"},"text":"Rob Dyrdek is the funniest man alive. That is all.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 22:57:00 +0000 2009","favorited":false,"id":1441588944,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"favorited":false,"user":{"profile_sidebar_fill_color":"252429","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_border_color":"181A1E","followers_count":1228,"following":true,"notifications":false,"profile_background_tile":false,"friends_count":161,"time_zone":"Indiana (East)","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","favourites_count":73,"profile_background_color":"1A1B1F","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","screen_name":"jnunemaker","statuses_count":4663,"profile_link_color":"2FC2EF","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"Dang, forgot about CAN http:\/\/calendaraboutnothing.com\/~jnunemaker yesterday and broke my streak of 5 days in a row.","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1438916463,"in_reply_to_user_id":null,"source":"web","created_at":"Thu Apr 02 15:24:17 +0000 2009"},{"in_reply_to_screen_name":null,"user":{"friends_count":161,"profile_background_color":"1A1B1F","description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_text_color":"666666","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_link_color":"2FC2EF","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","protected":false,"statuses_count":4660,"profile_sidebar_fill_color":"252429","notifications":false,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_border_color":"181A1E","followers_count":1228,"profile_background_tile":false,"location":"Mishawaka, Indiana","id":4243},"text":"@kebabsylan yes. I'll be there at noon.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 14:38:03 +0000 2009","favorited":false,"id":1438637063,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>"},{"in_reply_to_screen_name":null,"user":{"notifications":false,"profile_background_tile":false,"friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4659,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1228},"text":"http:\/\/twitpic.com\/2pwjy - The books I'm reading right now. Wish I had more time.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 14:34:10 +0000 2009","favorited":false,"id":1438613754,"source":"<a href=\"http:\/\/twitpic.com\/\">TwitPic<\/a>"},{"favorited":false,"user":{"statuses_count":4658,"profile_background_color":"1A1B1F","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"followers_count":1226,"profile_text_color":"666666","following":true,"favourites_count":72,"time_zone":"Indiana (East)","profile_link_color":"2FC2EF","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","notifications":false,"profile_sidebar_fill_color":"252429","friends_count":161,"screen_name":"jnunemaker","profile_sidebar_border_color":"181A1E","profile_background_tile":false,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"Reading a couple hokey named books of late, but really enjoying them. \"I Will Teach You To Be Rich\" and \"Get Anyone To Do Anything\".","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1436286949,"in_reply_to_user_id":null,"source":"web","created_at":"Thu Apr 02 03:52:02 +0000 2009"},{"favorited":false,"user":{"profile_link_color":"2FC2EF","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_fill_color":"252429","followers_count":1226,"following":true,"time_zone":"Indiana (East)","profile_sidebar_border_color":"181A1E","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","notifications":false,"profile_background_tile":false,"friends_count":161,"protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","favourites_count":72,"profile_background_color":"1A1B1F","screen_name":"jnunemaker","statuses_count":4657,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"Megan Joy turned into a train wreck tonight.","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1435963959,"in_reply_to_user_id":null,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>","created_at":"Thu Apr 02 02:51:01 +0000 2009"},{"in_reply_to_screen_name":null,"user":{"notifications":false,"profile_background_tile":false,"friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4656,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1226},"text":"Watching latest House. Cool idea.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 01:25:46 +0000 2009","favorited":false,"id":1435502494,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"in_reply_to_screen_name":null,"user":{"notifications":false,"profile_background_tile":false,"friends_count":179,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4650,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1226},"text":"Sat on a fat bob today. Want! http:\/\/tr.im\/i7ha Love the flat black. Wish I could get a used one for less money, but they are too new.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Wed Apr 01 23:16:13 +0000 2009","favorited":false,"id":1434842036,"source":"web"},{"truncated":false,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","location":"Mishawaka, Indiana","id":4243,"followers_count":1226,"screen_name":"jnunemaker"},"in_reply_to_status_id":null,"text":"Just test drove an Escape with @nunieswife and visited the Harley Store. Johnny want a Harley...BAD!","in_reply_to_user_id":null,"favorited":false,"created_at":"Wed Apr 01 22:31:04 +0000 2009","in_reply_to_screen_name":null,"id":1434591491,"source":"web"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1222,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"text":"I hope the Bears go after Jay Cutler.","favorited":false,"created_at":"Wed Apr 01 12:35:28 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"id":1431011290,"in_reply_to_status_id":null,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1216,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"text":"Bundled up HTTParty's JSON and XML parsers (ganked from Merb and Rails) into a separate gem for all to enjoy. http:\/\/tr.im\/i4rc","favorited":false,"created_at":"Wed Apr 01 04:30:10 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"id":1429401587,"in_reply_to_status_id":null,"source":"web"},{"truncated":false,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","location":"Mishawaka, Indiana","id":4243,"followers_count":1215,"screen_name":"jnunemaker"},"in_reply_to_status_id":null,"text":"Opened an ING savings account tonight. First step towards automating more of my finances.","in_reply_to_user_id":null,"favorited":false,"created_at":"Wed Apr 01 01:13:13 +0000 2009","in_reply_to_screen_name":null,"id":1428332783,"source":"<a href=\"http:\/\/loungeapp.com\">Lounge<\/a>"},{"in_reply_to_status_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","followers_count":1214,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"in_reply_to_user_id":null,"text":"Working from the ND bookstore.","created_at":"Tue Mar 31 19:19:44 +0000 2009","favorited":false,"in_reply_to_screen_name":null,"truncated":false,"id":1426346076,"source":"web"},{"in_reply_to_status_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","followers_count":1214,"location":"Mishawaka, Indiana","id":4243,"screen_name":"jnunemaker"},"text":"Wishes the slide screen on the iPhone had an api so he could put weather and ego app stats there.","in_reply_to_user_id":null,"favorited":false,"created_at":"Tue Mar 31 14:46:14 +0000 2009","in_reply_to_screen_name":null,"id":1424683964,"truncated":false,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1214,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"favorited":false,"text":"En route to @ebrackley's. We're going to a fondue murder mystery tonight. Who killed the fondue!","created_at":"Sun Mar 29 17:44:43 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1413049459,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"favorited":false,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","followers_count":1214,"url":"http:\/\/railstips.org\/about","name":"John Nunemaker","screen_name":"jnunemaker","protected":false,"location":"Mishawaka, Indiana","id":4243},"in_reply_to_screen_name":null,"text":"Added a sexy bar graph of the RailsTips archives in the footer. http:\/\/tr.im\/hWt5","created_at":"Sun Mar 29 06:09:54 +0000 2009","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"id":1411056131,"source":"web"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1214,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"favorited":false,"text":"Corn!!!","created_at":"Sun Mar 29 03:34:49 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1410528666,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1214,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"favorited":false,"text":"Famous Dave's was so tasty tonight. Had fun with @nunieswife, @orderedlist, @carrie, @oaknd1, @lizsmc1 and @catbrad. Dang lots of tweeps.","created_at":"Sun Mar 29 00:26:09 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1409709416,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1214,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"favorited":false,"text":"We told him he was making a big mistake and that he obviously didn't know who we are.","created_at":"Sat Mar 28 22:30:04 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1409188633,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>"},{"in_reply_to_user_id":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","protected":false,"followers_count":1214,"screen_name":"jnunemaker","location":"Mishawaka, Indiana","id":4243},"favorited":false,"text":"Just brainstormed next addition to @harmonyapp with @orderedlist. It is going to be awesome.","created_at":"Sat Mar 28 21:15:34 +0000 2009","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1408861206,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"}]
|
@@ -0,0 +1 @@
|
|
1
|
+
{"error": "Rate limit exceeded"}
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"favorited":false,"user":{"profile_link_color":"1DA9DE","description":"oAk is a designer who tweets, but not necessarily about design. I work at the University of Notre Dame.","utc_offset":-18000,"profile_sidebar_fill_color":"ebebeb","followers_count":208,"following":true,"time_zone":"Indiana (East)","profile_sidebar_border_color":"8f8f8f","url":"http:\/\/atimcalledoak.com","name":"-oAk-","notifications":false,"profile_background_tile":false,"friends_count":111,"protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/101535873\/avatarone_normal.png","favourites_count":214,"profile_background_color":"000000","screen_name":"oaknd1","statuses_count":3918,"profile_background_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_background_images\/3616500\/twitterblack.jpg","profile_text_color":"243d5b","location":"iPhone: 41.703415,-86.246094","id":3038211,"created_at":"Sat Mar 31 04:30:35 +0000 2007"},"text":"@jnunemaker cold out today. cold yesterday. even colder today.","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":null,"id":1446039519,"in_reply_to_user_id":4243,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>","created_at":"Fri Apr 03 15:51:12 +0000 2009"},{"favorited":false,"user":{"description":"Web guy in the making. Design, coding, usability. Typography addict.","statuses_count":2412,"utc_offset":0,"profile_sidebar_fill_color":"f7f7f7","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","following":false,"profile_sidebar_border_color":"ff0007","time_zone":"Lisbon","friends_count":391,"url":"http:\/\/paulozoom.com","name":"Paulo Pereira","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","notifications":false,"profile_background_color":"f0f0f0","screen_name":"paulozoom","profile_background_tile":false,"profile_text_color":"000000","followers_count":350,"location":"Porto, Portugal","id":14452237,"favourites_count":8,"created_at":"Sun Apr 20 15:11:38 +0000 2008","profile_link_color":"ff0007"},"text":"@jnunemaker could you try to do HTTParty.get(\"http:\/\/digg.com\") ? I find myself waiting forever for the response. Posted a ticket on that.","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":null,"id":1445973779,"in_reply_to_user_id":4243,"source":"<a href=\"http:\/\/thecosmicmachine.com\/eventbox\/\">EventBox<\/a>","created_at":"Fri Apr 03 15:40:20 +0000 2009"},{"in_reply_to_screen_name":"jnunemaker","user":{"description":"just another ruby hacker","time_zone":"Eastern Time (US & Canada)","utc_offset":-18000,"profile_text_color":"663B12","followers_count":128,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/66571046\/john7_normal.jpg","following":false,"notifications":false,"profile_background_tile":false,"favourites_count":0,"profile_link_color":"1F98C7","url":"http:\/\/wiseheartdesign.com","screen_name":"johnwlong2000","name":"John W. Long","statuses_count":729,"profile_sidebar_fill_color":"DAECF4","protected":false,"created_at":"Fri Oct 26 02:45:58 +0000 2007","profile_sidebar_border_color":"C6E2EE","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme2\/bg.gif","friends_count":63,"location":"Cary, North Carolina","id":9700282,"profile_background_color":"C6E2EE"},"text":"@jnunemaker An unobtrusive Fancy Zoom image behavior for use with LowPro: http:\/\/gist.github.com\/89299","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":4243,"created_at":"Thu Apr 02 17:23:21 +0000 2009","favorited":false,"id":1439627059,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","friends_count":390,"description":"Web guy in the making. Design, coding, usability. Typography addict.","utc_offset":0,"profile_sidebar_border_color":"ff0007","following":true,"time_zone":"Lisbon","profile_background_color":"f0f0f0","followers_count":350,"url":"http:\/\/paulozoom.com","name":"Paulo Pereira","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","notifications":false,"profile_background_tile":false,"favourites_count":7,"profile_text_color":"000000","screen_name":"paulozoom","statuses_count":2365,"profile_link_color":"ff0007","location":"Porto, Portugal","id":14452237,"created_at":"Sun Apr 20 15:11:38 +0000 2008","profile_sidebar_fill_color":"f7f7f7"},"text":"@jnunemaker Trying to dominate the world, heh?","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":1438613754,"id":1438634711,"in_reply_to_user_id":4243,"source":"<a href=\"http:\/\/thecosmicmachine.com\/eventbox\/\">EventBox<\/a>","created_at":"Thu Apr 02 14:37:38 +0000 2009"},{"in_reply_to_screen_name":"jnunemaker","user":{"description":"me.awesomize()","time_zone":"Eastern Time (US & Canada)","utc_offset":-18000,"profile_sidebar_border_color":"87bc44","notifications":true,"profile_background_tile":false,"friends_count":24,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/51681870\/kebabdylan-32_normal.jpg","following":true,"favourites_count":0,"profile_background_color":"9ae4e8","url":null,"screen_name":"kebabdylan","name":"Jonathan","statuses_count":98,"protected":false,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","profile_text_color":"000000","created_at":"Tue Mar 11 12:45:25 +0000 2008","profile_link_color":"0000ff","location":"","id":14122477,"profile_sidebar_fill_color":"e0ff92","followers_count":21},"text":"@jnunemaker la e today?","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":4243,"created_at":"Thu Apr 02 14:34:55 +0000 2009","favorited":false,"id":1438618345,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_background_images\/4652948\/willie_grovey_collage.jpg","friends_count":717,"description":"Raccoon Willie is the most celebrated animal on the web... he's bigger than Shrek!!!","utc_offset":-25200,"profile_background_color":"9AE4E8","following":true,"time_zone":"Mountain Time (US & Canada)","profile_text_color":"333333","followers_count":371,"url":"http:\/\/www.youtube.com\/damygeebo","name":"Raccoon Willie","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/71327390\/wilcat_normal.jpg","notifications":false,"profile_background_tile":true,"favourites_count":0,"profile_link_color":"c81614","screen_name":"damygeebo","statuses_count":1401,"profile_sidebar_fill_color":"ebe3bc","location":"Midwest","id":19037300,"created_at":"Thu Jan 15 20:26:20 +0000 2009","profile_sidebar_border_color":"d0ba86"},"text":"@jnunemaker ...have you read \"Raccoon Willie: Dead Man\" yet?","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":1436286949,"id":1436292726,"in_reply_to_user_id":4243,"source":"web","created_at":"Thu Apr 02 03:53:16 +0000 2009"},{"in_reply_to_screen_name":"jnunemaker","user":{"notifications":false,"profile_background_tile":false,"friends_count":177,"description":"don't judge me by my crappy website","time_zone":"Pacific Time (US & Canada)","utc_offset":-28800,"favourites_count":18,"profile_background_color":"98AA5F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","profile_text_color":"000000","url":"http:\/\/screenflicker.com\/mike\/","screen_name":"stickel","name":"Mike Stickel","statuses_count":6951,"protected":false,"profile_link_color":"0000ff","created_at":"Wed Nov 22 15:38:28 +0000 2006","profile_sidebar_fill_color":"FFF591","location":"San Francisco","id":15403,"profile_sidebar_border_color":"BCA944","followers_count":529},"text":"@jnunemaker Ouch. That sucks. I rode bitch know a sport bike but that was before I knew how to ride (that person taught me a bit).","truncated":false,"in_reply_to_status_id":1435431849,"in_reply_to_user_id":4243,"created_at":"Thu Apr 02 03:20:20 +0000 2009","favorited":false,"id":1436127953,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"in_reply_to_screen_name":"jnunemaker","user":{"notifications":false,"description":"Rails Machine CEO, DJ, Bird dog enthusiast","time_zone":"Eastern Time (US & Canada)","utc_offset":-18000,"profile_sidebar_border_color":"87bc44","profile_background_tile":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/56157945\/Photo_1_normal.jpg","following":true,"friends_count":104,"profile_background_color":"9ae4e8","url":"http:\/\/bradley.is","screen_name":"bradleyktaylor","name":"Bradley Taylor","protected":false,"favourites_count":0,"profile_text_color":"000000","created_at":"Thu Feb 21 18:50:49 +0000 2008","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","profile_link_color":"0000ff","followers_count":142,"location":"Savannah, GA","id":13782402,"statuses_count":793,"profile_sidebar_fill_color":"e0ff92"},"text":"@jnunemaker thanks for the heads up. I'm mostly just using email as an api.","truncated":false,"in_reply_to_status_id":1435440065,"in_reply_to_user_id":4243,"created_at":"Thu Apr 02 01:18:18 +0000 2009","favorited":false,"id":1435461339,"source":"web"},{"favorited":false,"user":{"profile_sidebar_fill_color":"e0ff92","description":"http:\/\/iphoneonrails.com","utc_offset":-18000,"profile_sidebar_border_color":"87bc44","followers_count":287,"following":true,"notifications":false,"profile_background_tile":false,"friends_count":32,"time_zone":"Eastern Time (US & Canada)","url":"http:\/\/yfactorial.com","name":"Ryan Daigle","favourites_count":1,"profile_background_color":"9ae4e8","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/45111492\/ryan_vector_normal.png","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","profile_text_color":"000000","screen_name":"rwdaigle","statuses_count":529,"profile_link_color":"0000ff","location":"iPhone: 35.778992,-78.842484","id":658343,"created_at":"Thu Jan 18 02:46:57 +0000 2007"},"text":"@jnunemaker don't do it man. Step away from the bike.","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":1434842036,"id":1435366505,"in_reply_to_user_id":4243,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>","created_at":"Thu Apr 02 01:00:55 +0000 2009"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","friends_count":177,"description":"don't judge me by my crappy website","utc_offset":-28800,"profile_background_color":"98AA5F","following":true,"time_zone":"Pacific Time (US & Canada)","profile_text_color":"000000","followers_count":527,"url":"http:\/\/screenflicker.com\/mike\/","name":"Mike Stickel","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","notifications":false,"profile_background_tile":false,"favourites_count":18,"profile_link_color":"0000ff","screen_name":"stickel","statuses_count":6949,"profile_sidebar_fill_color":"FFF591","location":"San Francisco","id":15403,"created_at":"Wed Nov 22 15:38:28 +0000 2006","profile_sidebar_border_color":"BCA944"},"text":"@jnunemaker No? Why not? And which part wouldn't you wish on anyone?","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":null,"id":1435238296,"in_reply_to_user_id":4243,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>","created_at":"Thu Apr 02 00:36:48 +0000 2009"},{"favorited":false,"user":{"profile_sidebar_fill_color":"FFF591","description":"don't judge me by my crappy website","utc_offset":-28800,"profile_sidebar_border_color":"BCA944","followers_count":527,"following":true,"notifications":false,"profile_background_tile":false,"friends_count":177,"time_zone":"Pacific Time (US & Canada)","url":"http:\/\/screenflicker.com\/mike\/","name":"Mike Stickel","favourites_count":18,"profile_background_color":"98AA5F","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","profile_text_color":"000000","screen_name":"stickel","statuses_count":6944,"profile_link_color":"0000ff","location":"San Francisco","id":15403,"created_at":"Wed Nov 22 15:38:28 +0000 2006"},"text":"@jnunemaker And they'd all cheer and buy us drinks the entire time we are there. It will be AWESOME! @orderedlist can ride bitch. :)","in_reply_to_screen_name":"jnunemaker","truncated":false,"in_reply_to_status_id":null,"id":1435063394,"in_reply_to_user_id":4243,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>","created_at":"Wed Apr 01 23:58:39 +0000 2009"},{"in_reply_to_screen_name":"jnunemaker","user":{"description":"don't judge me by my crappy website","time_zone":"Pacific Time (US & Canada)","utc_offset":-28800,"profile_background_color":"98AA5F","followers_count":527,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","following":true,"notifications":false,"profile_background_tile":false,"favourites_count":18,"profile_text_color":"000000","url":"http:\/\/screenflicker.com\/mike\/","screen_name":"stickel","name":"Mike Stickel","statuses_count":6943,"profile_link_color":"0000ff","protected":false,"created_at":"Wed Nov 22 15:38:28 +0000 2006","profile_sidebar_fill_color":"FFF591","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme1\/bg.gif","friends_count":177,"profile_sidebar_border_color":"BCA944","location":"San Francisco","id":15403},"text":"@jnunemaker I dunno. The V-ROD Muscle is pretty hot. http:\/\/moourl.com\/p0q99","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":4243,"created_at":"Wed Apr 01 23:36:31 +0000 2009","favorited":false,"id":1434948902,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>"},{"truncated":false,"user":{"description":"don't judge me by my crappy website","url":"http:\/\/screenflicker.com\/mike\/","name":"Mike Stickel","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","location":"San Francisco","id":15403,"followers_count":527,"screen_name":"stickel"},"in_reply_to_status_id":null,"text":"@jnunemaker Johnny should get a Harley. :D Then ride it to Sturgis with me one of these years. :)","in_reply_to_user_id":4243,"favorited":false,"created_at":"Wed Apr 01 22:51:20 +0000 2009","in_reply_to_screen_name":"jnunemaker","id":1434706104,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>"},{"in_reply_to_user_id":4243,"user":{"description":"Researcher - eLearning and machine consciousness, community and identity","url":"http:\/\/brains.parslow.net","name":"PatParslow","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/53254225\/pat_normal.jpg","protected":false,"followers_count":292,"screen_name":"PatParslow","location":"Reading, UK","id":14512018},"text":"@jnunemaker http:\/\/twitter.rubyforge.org\/ down?","favorited":false,"created_at":"Wed Apr 01 20:22:38 +0000 2009","in_reply_to_screen_name":"jnunemaker","truncated":false,"id":1433804708,"in_reply_to_status_id":null,"source":"<a href=\"http:\/\/www.tweetdeck.com\/\">TweetDeck<\/a>"},{"truncated":false,"user":{"description":"Web guy in the making. Design, coding, usability. Typography addict.","url":"http:\/\/paulozoom.com","name":"Paulo Pereira","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","location":"Porto, Portugal","id":14452237,"followers_count":349,"screen_name":"paulozoom"},"in_reply_to_status_id":null,"text":"@jnunemaker found the problem, it was an unset variable. sry","in_reply_to_user_id":4243,"favorited":false,"created_at":"Wed Apr 01 13:15:06 +0000 2009","in_reply_to_screen_name":"jnunemaker","id":1431202286,"source":"<a href=\"http:\/\/thecosmicmachine.com\/eventbox\/\">EventBox<\/a>"},{"in_reply_to_user_id":4243,"user":{"description":"Web guy in the making. Design, coding, usability. Typography addict.","url":"http:\/\/paulozoom.com","name":"Paulo Pereira","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","protected":false,"followers_count":349,"screen_name":"paulozoom","location":"Porto, Portugal","id":14452237},"text":"@jnunemaker tks a lot for your feedback. also, can u check what's going on with httparty? doesn't work at all. http:\/\/bit.ly\/RTR5","favorited":false,"created_at":"Wed Apr 01 13:04:46 +0000 2009","in_reply_to_screen_name":"jnunemaker","truncated":false,"id":1431150482,"in_reply_to_status_id":1430926191,"source":"<a href=\"http:\/\/thecosmicmachine.com\/eventbox\/\">EventBox<\/a>"},{"in_reply_to_user_id":4243,"user":{"description":"Web developer for the University of Notre Dame","url":"http:\/\/weedygarden.net","name":"Erik Runyon","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/43767822\/Photo_5_normal.jpg","protected":false,"followers_count":65,"screen_name":"erunyon","location":"Michiana","id":9241962},"text":"@jnunemaker I think the Lions are looking at him... which is funny since they already have 5 or so QB's","favorited":false,"created_at":"Wed Apr 01 12:39:20 +0000 2009","in_reply_to_screen_name":"jnunemaker","truncated":false,"id":1431028594,"in_reply_to_status_id":1431011290,"source":"<a href=\"http:\/\/iconfactory.com\/software\/twitterrific\">twitterrific<\/a>"},{"truncated":false,"user":{"description":"Web guy in the making. Design, coding, usability. Typography addict.","url":"http:\/\/paulozoom.com","name":"Paulo Pereira","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","location":"Porto, Portugal","id":14452237,"followers_count":348,"screen_name":"paulozoom"},"in_reply_to_status_id":null,"text":"@jnunemaker I've never tested any code, and I'm considering Rspec and Shoulda for both rails and non-rails code. Which one do you suggest?","in_reply_to_user_id":4243,"favorited":false,"created_at":"Wed Apr 01 10:49:02 +0000 2009","in_reply_to_screen_name":"jnunemaker","id":1430619438,"source":"<a href=\"http:\/\/thecosmicmachine.com\/eventbox\/\">EventBox<\/a>"},{"in_reply_to_user_id":4243,"user":{"description":"Twenty-something physician, entrepreneur, biker, on Rails, et cetera.","url":"http:\/\/y.freshpursuits.com\/","name":"Yasser Dahab","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/65001080\/feet_normal.png","protected":false,"followers_count":191,"screen_name":"yasserdahab","location":"Denver","id":728893},"text":"@jnunemaker you are my hero.","favorited":false,"created_at":"Wed Apr 01 05:34:36 +0000 2009","in_reply_to_screen_name":"jnunemaker","truncated":false,"id":1429670006,"in_reply_to_status_id":1429401587,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"}]
|
@@ -0,0 +1 @@
|
|
1
|
+
{"results":[{"text":"Someone asked about a tweet reader. Easy to do in ruby with @jnunemaker's twitter gem and the win32-sapi gem, if you are on windows.","to_user_id":null,"from_user":"PatParslow","id":1446425395,"from_user_id":297147,"iso_language_code":"en","source":"<a href="http:\/\/www.tweetdeck.com\/">TweetDeck<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/53254225\/pat_normal.jpg","created_at":"Fri, 03 Apr 2009 16:55:40 +0000"},{"text":"@jnunemaker cold out today. cold yesterday. even colder today.","to_user_id":19106,"to_user":"jnunemaker","from_user":"oaknd1","id":1446039519,"from_user_id":112472,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/101535873\/avatarone_normal.png","created_at":"Fri, 03 Apr 2009 15:51:12 +0000"},{"text":"@jnunemaker could you try to do HTTParty.get("http:\/\/digg.com") ? I find myself waiting forever for the response. Posted a ticket on that.","to_user_id":19106,"to_user":"jnunemaker","from_user":"paulozoom","id":1445973779,"from_user_id":258387,"iso_language_code":"en","source":"<a href="http:\/\/thecosmicmachine.com\/eventbox\/">EventBox<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","created_at":"Fri, 03 Apr 2009 15:40:20 +0000"},{"text":"Crack, @jnunemaker's new gem for XML and JSON parsing, is aptly named. One hit and I know it will be hard to quit.","to_user_id":null,"from_user":"jerry","id":1442399154,"from_user_id":78336,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/54424361\/jerry135x135_normal.jpg","created_at":"Fri, 03 Apr 2009 01:27:02 +0000"},{"text":"@jnunemaker An unobtrusive Fancy Zoom image behavior for use with LowPro: http:\/\/gist.github.com\/89299","to_user_id":19106,"to_user":"jnunemaker","from_user":"johnwlong2000","id":1439627059,"from_user_id":445276,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/66571046\/john7_normal.jpg","created_at":"Thu, 02 Apr 2009 17:23:21 +0000"},{"text":"@jnunemaker Trying to dominate the world, heh?","to_user_id":19106,"to_user":"jnunemaker","from_user":"paulozoom","id":1438634711,"from_user_id":258387,"iso_language_code":"en","source":"<a href="http:\/\/thecosmicmachine.com\/eventbox\/">EventBox<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/64142495\/zoom2_normal.png","created_at":"Thu, 02 Apr 2009 14:37:38 +0000"},{"text":"@jnunemaker la e today?","to_user_id":19106,"to_user":"jnunemaker","from_user":"kebabdylan","id":1438618345,"from_user_id":162717,"iso_language_code":"es","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/51681870\/kebabdylan-32_normal.jpg","created_at":"Thu, 02 Apr 2009 14:34:55 +0000"},{"text":"@jnunemaker ...have you read "Raccoon Willie: Dead Man" yet?","to_user_id":19106,"to_user":"jnunemaker","from_user":"damygeebo","id":1436292726,"from_user_id":3653781,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/71327390\/wilcat_normal.jpg","created_at":"Thu, 02 Apr 2009 03:53:16 +0000"},{"text":"@jnunemaker Ouch. That sucks. I rode bitch know a sport bike but that was before I knew how to ride (that person taught me a bit).","to_user_id":19106,"to_user":"jnunemaker","from_user":"stickel","id":1436127953,"from_user_id":2132320,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","created_at":"Thu, 02 Apr 2009 03:20:20 +0000"},{"text":"@jnunemaker thanks for the heads up. I'm mostly just using email as an api.","to_user_id":19106,"to_user":"jnunemaker","from_user":"bradleyktaylor","id":1435461339,"from_user_id":49333,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/56157945\/Photo_1_normal.jpg","created_at":"Thu, 02 Apr 2009 01:18:18 +0000"},{"text":"@jnunemaker don't do it man. Step away from the bike.","to_user_id":19106,"to_user":"jnunemaker","from_user":"rwdaigle","id":1435366505,"from_user_id":153214,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/45111492\/ryan_vector_normal.png","created_at":"Thu, 02 Apr 2009 01:00:55 +0000"},{"text":"@jnunemaker No? Why not? And which part wouldn't you wish on anyone?","to_user_id":19106,"to_user":"jnunemaker","from_user":"stickel","id":1435238296,"from_user_id":2132320,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","created_at":"Thu, 02 Apr 2009 00:36:48 +0000"},{"text":"@jnunemaker And they'd all cheer and buy us drinks the entire time we are there. It will be AWESOME! @orderedlist can ride bitch. :)","to_user_id":19106,"to_user":"jnunemaker","from_user":"stickel","id":1435063394,"from_user_id":2132320,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","created_at":"Wed, 01 Apr 2009 23:58:39 +0000"},{"text":"@jnunemaker I dunno. The V-ROD Muscle is pretty hot. http:\/\/moourl.com\/p0q99","to_user_id":19106,"to_user":"jnunemaker","from_user":"stickel","id":1434948902,"from_user_id":2132320,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","created_at":"Wed, 01 Apr 2009 23:36:31 +0000"},{"text":"@jnunemaker Johnny should get a Harley. :D Then ride it to Sturgis with me one of these years. :)","to_user_id":19106,"to_user":"jnunemaker","from_user":"stickel","id":1434706104,"from_user_id":2132320,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/14998572\/mike-sxsw07-56x56_normal.jpg","created_at":"Wed, 01 Apr 2009 22:51:20 +0000"}],"since_id":0,"max_id":1446791544,"refresh_url":"?since_id=1446791544&q=%40jnunemaker","results_per_page":15,"next_page":"?page=2&max_id=1446791544&q=%40jnunemaker","completed_in":0.023961,"page":1,"query":"%40jnunemaker"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"results":[{"text":"Colder out today than expected. Headed to the Beanery for some morning wakeup drink. Latte or coffee...hmmm...","to_user_id":null,"from_user":"jnunemaker","id":1445986256,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Fri, 03 Apr 2009 15:42:24 +0000"},{"text":"@jerry haha. @erunyon said he didn't think it was unique enough for google searches. :)","to_user_id":78336,"to_user":"jerry","from_user":"jnunemaker","id":1443087283,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Fri, 03 Apr 2009 03:34:26 +0000"},{"text":"Rob Dyrdek is the funniest man alive. That is all.","to_user_id":null,"from_user":"jnunemaker","id":1441588944,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 22:57:00 +0000"},{"text":"Dang, forgot about CAN http:\/\/calendaraboutnothing.com\/~jnunemaker yesterday and broke my streak of 5 days in a row.","to_user_id":null,"from_user":"jnunemaker","id":1438916463,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 15:24:17 +0000"},{"text":"@bryckbost yep. I haven't used dash much but it seems cool. Give it a try.","to_user_id":12964,"to_user":"bryckbost","from_user":"jnunemaker","id":1438754546,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 14:57:49 +0000"},{"text":"@nateklaiber dive into python is free online.","to_user_id":128782,"to_user":"nateklaiber","from_user":"jnunemaker","id":1438718326,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 14:51:47 +0000"},{"text":"@kebabsylan yes. I'll be there at noon.","to_user_id":9689026,"to_user":"kebabsylan","from_user":"jnunemaker","id":1438637063,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75">txt<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 14:38:03 +0000"},{"text":"http:\/\/twitpic.com\/2pwjy - The books I'm reading right now. Wish I had more time.","to_user_id":null,"from_user":"jnunemaker","id":1438613754,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/twitpic.com\/">TwitPic<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 14:34:10 +0000"},{"text":"Reading a couple hokey named books of late, but really enjoying them. "I Will Teach You To Be Rich" and "Get Anyone To Do Anything".","to_user_id":null,"from_user":"jnunemaker","id":1436286949,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 03:52:02 +0000"},{"text":"Megan Joy turned into a train wreck tonight.","to_user_id":null,"from_user":"jnunemaker","id":1435963959,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75">txt<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 02:51:01 +0000"},{"text":"Watching latest House. Cool idea.","to_user_id":null,"from_user":"jnunemaker","id":1435502494,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 01:25:46 +0000"},{"text":"@rwdaigle not a motorcycle man?","to_user_id":153214,"to_user":"rwdaigle","from_user":"jnunemaker","id":1435443029,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 01:14:52 +0000"},{"text":"@bradleyktaylor I did some ruby wufoo a few months back. It's on github.","to_user_id":49333,"to_user":"bradleyktaylor","from_user":"jnunemaker","id":1435440065,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 01:14:19 +0000"},{"text":"@stickel riding bitch on motorcycle. Bike died once on trip and had to ride on back of my dad's.","to_user_id":2132320,"to_user":"stickel","from_user":"jnunemaker","id":1435431849,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 01:12:46 +0000"},{"text":"@stickel haha. Having done that twice I wouldn't wish it on anyone. :)","to_user_id":2132320,"to_user":"stickel","from_user":"jnunemaker","id":1435217155,"from_user_id":19106,"iso_language_code":"en","source":"<a href="http:\/\/www.atebits.com\/software\/tweetie\/">Tweetie<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","created_at":"Thu, 02 Apr 2009 00:31:52 +0000"}],"since_id":0,"max_id":1446791544,"refresh_url":"?since_id=1446791544&q=from%3Ajnunemaker","results_per_page":15,"next_page":"?page=2&max_id=1446791544&q=from%3Ajnunemaker","completed_in":0.024906,"page":1,"query":"from%3Ajnunemaker"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"in_reply_to_screen_name":null,"user":{"profile_sidebar_border_color":"181A1E","description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"friends_count":161,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"notifications":false,"profile_background_color":"1A1B1F","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","profile_background_tile":false,"profile_text_color":"666666","followers_count":1231,"protected":false,"favourites_count":73,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_link_color":"2FC2EF","statuses_count":4664,"profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif"},"text":"Rob Dyrdek is the funniest man alive. That is all.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 22:57:00 +0000 2009","favorited":false,"id":1441588944,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"profile_background_tile":false,"friends_count":159,"description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"notifications":null,"favourites_count":79,"profile_background_color":"1A1B1F","following":null,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","statuses_count":4752,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","time_zone":"Indiana (East)","protected":false,"screen_name":"jnunemaker","status":{"in_reply_to_status_id":null,"in_reply_to_user_id":null,"text":"224! http:\/\/flightcontrolled.com\/ Holy crap. There are some really high flight control scorers out there. *gives up* :D","favorited":false,"in_reply_to_screen_name":null,"created_at":"Tue Apr 14 20:38:49 +0000 2009","truncated":false,"id":1519558635,"source":"<a href=\"http:\/\/twitter.rubyforge.org\">Twitter App<\/a>"},"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","followers_count":1248,"location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E"}
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"in_reply_to_screen_name":null,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"profile_sidebar_border_color":"181A1E","notifications":false,"profile_background_tile":false,"friends_count":160,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"favourites_count":74,"profile_background_color":"1A1B1F","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4666,"protected":false,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_link_color":"2FC2EF","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_fill_color":"252429","followers_count":1234},"text":"Colder out today than expected. Headed to the Beanery for some morning wakeup drink. Latte or coffee...hmmm...","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Fri Apr 03 15:42:24 +0000 2009","favorited":false,"id":1445986256,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"in_reply_to_screen_name":"jerry","user":{"notifications":false,"profile_background_tile":false,"friends_count":160,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":73,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4665,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1231},"text":"@jerry haha. @erunyon said he didn't think it was unique enough for google searches. :)","truncated":false,"in_reply_to_status_id":1442399154,"in_reply_to_user_id":613,"created_at":"Fri Apr 03 03:34:26 +0000 2009","favorited":false,"id":1443087283,"source":"web"},{"in_reply_to_screen_name":null,"user":{"profile_sidebar_border_color":"181A1E","description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"friends_count":161,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"notifications":false,"profile_background_color":"1A1B1F","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","profile_background_tile":false,"profile_text_color":"666666","followers_count":1231,"protected":false,"favourites_count":73,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_link_color":"2FC2EF","statuses_count":4664,"profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif"},"text":"Rob Dyrdek is the funniest man alive. That is all.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 22:57:00 +0000 2009","favorited":false,"id":1441588944,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"favorited":false,"user":{"profile_sidebar_fill_color":"252429","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_border_color":"181A1E","followers_count":1228,"following":true,"notifications":false,"profile_background_tile":false,"friends_count":161,"time_zone":"Indiana (East)","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","favourites_count":73,"profile_background_color":"1A1B1F","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","screen_name":"jnunemaker","statuses_count":4663,"profile_link_color":"2FC2EF","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"Dang, forgot about CAN http:\/\/calendaraboutnothing.com\/~jnunemaker yesterday and broke my streak of 5 days in a row.","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1438916463,"in_reply_to_user_id":null,"source":"web","created_at":"Thu Apr 02 15:24:17 +0000 2009"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_background_color":"1A1B1F","following":true,"time_zone":"Indiana (East)","profile_text_color":"666666","followers_count":1228,"url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","notifications":false,"profile_background_tile":false,"favourites_count":73,"profile_link_color":"2FC2EF","screen_name":"jnunemaker","statuses_count":4662,"profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_border_color":"181A1E"},"text":"@bryckbost yep. I haven't used dash much but it seems cool. Give it a try.","in_reply_to_screen_name":"bryckbost","truncated":false,"in_reply_to_status_id":1438082787,"id":1438754546,"in_reply_to_user_id":8494682,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>","created_at":"Thu Apr 02 14:57:49 +0000 2009"},{"favorited":false,"user":{"profile_sidebar_fill_color":"252429","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_border_color":"181A1E","followers_count":1228,"following":true,"notifications":false,"profile_background_tile":false,"friends_count":161,"time_zone":"Indiana (East)","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","favourites_count":73,"profile_background_color":"1A1B1F","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","screen_name":"jnunemaker","statuses_count":4661,"profile_link_color":"2FC2EF","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"@nateklaiber dive into python is free online.","in_reply_to_screen_name":"nateklaiber","truncated":false,"in_reply_to_status_id":1438415604,"id":1438718326,"in_reply_to_user_id":13722,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>","created_at":"Thu Apr 02 14:51:47 +0000 2009"},{"in_reply_to_screen_name":null,"user":{"friends_count":161,"profile_background_color":"1A1B1F","description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_text_color":"666666","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_link_color":"2FC2EF","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","protected":false,"statuses_count":4660,"profile_sidebar_fill_color":"252429","notifications":false,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_border_color":"181A1E","followers_count":1228,"profile_background_tile":false,"location":"Mishawaka, Indiana","id":4243},"text":"@kebabsylan yes. I'll be there at noon.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 14:38:03 +0000 2009","favorited":false,"id":1438637063,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>"},{"in_reply_to_screen_name":null,"user":{"notifications":false,"profile_background_tile":false,"friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4659,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1228},"text":"http:\/\/twitpic.com\/2pwjy - The books I'm reading right now. Wish I had more time.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 14:34:10 +0000 2009","favorited":false,"id":1438613754,"source":"<a href=\"http:\/\/twitpic.com\/\">TwitPic<\/a>"},{"favorited":false,"user":{"statuses_count":4658,"profile_background_color":"1A1B1F","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"followers_count":1226,"profile_text_color":"666666","following":true,"favourites_count":72,"time_zone":"Indiana (East)","profile_link_color":"2FC2EF","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","notifications":false,"profile_sidebar_fill_color":"252429","friends_count":161,"screen_name":"jnunemaker","profile_sidebar_border_color":"181A1E","profile_background_tile":false,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"Reading a couple hokey named books of late, but really enjoying them. \"I Will Teach You To Be Rich\" and \"Get Anyone To Do Anything\".","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1436286949,"in_reply_to_user_id":null,"source":"web","created_at":"Thu Apr 02 03:52:02 +0000 2009"},{"favorited":false,"user":{"profile_link_color":"2FC2EF","description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_fill_color":"252429","followers_count":1226,"following":true,"time_zone":"Indiana (East)","profile_sidebar_border_color":"181A1E","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","notifications":false,"profile_background_tile":false,"friends_count":161,"protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","favourites_count":72,"profile_background_color":"1A1B1F","screen_name":"jnunemaker","statuses_count":4657,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"Megan Joy turned into a train wreck tonight.","in_reply_to_screen_name":null,"truncated":false,"in_reply_to_status_id":null,"id":1435963959,"in_reply_to_user_id":null,"source":"<a href=\"http:\/\/help.twitter.com\/index.php?pg=kb.page&id=75\">txt<\/a>","created_at":"Thu Apr 02 02:51:01 +0000 2009"},{"in_reply_to_screen_name":null,"user":{"notifications":false,"profile_background_tile":false,"friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4656,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1226},"text":"Watching latest House. Cool idea.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Thu Apr 02 01:25:46 +0000 2009","favorited":false,"id":1435502494,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_border_color":"181A1E","following":true,"time_zone":"Indiana (East)","profile_background_color":"1A1B1F","followers_count":1226,"url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","notifications":false,"profile_background_tile":false,"favourites_count":72,"profile_text_color":"666666","screen_name":"jnunemaker","statuses_count":4655,"profile_link_color":"2FC2EF","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429"},"text":"@rwdaigle not a motorcycle man?","in_reply_to_screen_name":"rwdaigle","truncated":false,"in_reply_to_status_id":1435366505,"id":1435443029,"in_reply_to_user_id":658343,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>","created_at":"Thu Apr 02 01:14:52 +0000 2009"},{"favorited":false,"user":{"profile_sidebar_border_color":"181A1E","followers_count":1226,"description":"Loves his wife, ruby, notre dame football and iu basketball","profile_background_tile":false,"utc_offset":-18000,"following":true,"friends_count":161,"profile_background_color":"1A1B1F","time_zone":"Indiana (East)","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","favourites_count":72,"profile_text_color":"666666","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_link_color":"2FC2EF","screen_name":"jnunemaker","statuses_count":4654,"profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"notifications":false,"created_at":"Sun Aug 13 22:56:06 +0000 2006"},"text":"@bradleyktaylor I did some ruby wufoo a few months back. It's on github.","in_reply_to_screen_name":"bradleyktaylor","truncated":false,"in_reply_to_status_id":1435320189,"id":1435440065,"in_reply_to_user_id":13782402,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>","created_at":"Thu Apr 02 01:14:19 +0000 2009"},{"in_reply_to_screen_name":"stickel","user":{"notifications":true,"profile_background_tile":false,"friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4653,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1226},"text":"@stickel riding bitch on motorcycle. Bike died once on trip and had to ride on back of my dad's.","truncated":false,"in_reply_to_status_id":1435238296,"in_reply_to_user_id":15403,"created_at":"Thu Apr 02 01:12:46 +0000 2009","favorited":false,"id":1435431849,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"in_reply_to_screen_name":"stickel","user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"profile_background_color":"1A1B1F","followers_count":1226,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"notifications":true,"profile_background_tile":false,"favourites_count":72,"profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4652,"profile_link_color":"2FC2EF","protected":false,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","friends_count":161,"profile_sidebar_border_color":"181A1E","location":"Mishawaka, Indiana","id":4243},"text":"@stickel haha. Having done that twice I wouldn't wish it on anyone. :)","truncated":false,"in_reply_to_status_id":1435063394,"in_reply_to_user_id":15403,"created_at":"Thu Apr 02 00:31:52 +0000 2009","favorited":false,"id":1435217155,"source":"<a href=\"http:\/\/www.atebits.com\/software\/tweetie\/\">Tweetie<\/a>"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","friends_count":161,"description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_sidebar_border_color":"181A1E","following":true,"time_zone":"Indiana (East)","profile_background_color":"1A1B1F","followers_count":1225,"url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","notifications":false,"profile_background_tile":false,"favourites_count":72,"profile_text_color":"666666","screen_name":"jnunemaker","statuses_count":4651,"profile_link_color":"2FC2EF","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429"},"text":"@stickel Dude. We would roll in and be like \"LISTEN UP! WE ARE WEB DEVELOPERS!\" Heads would turn.","in_reply_to_screen_name":"stickel","truncated":false,"in_reply_to_status_id":1434706104,"id":1434998057,"in_reply_to_user_id":15403,"source":"web","created_at":"Wed Apr 01 23:46:00 +0000 2009"},{"in_reply_to_screen_name":null,"user":{"notifications":false,"profile_background_tile":false,"friends_count":179,"description":"Loves his wife, ruby, notre dame football and iu basketball","time_zone":"Indiana (East)","utc_offset":-18000,"favourites_count":72,"profile_background_color":"1A1B1F","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","following":true,"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","profile_text_color":"666666","url":"http:\/\/railstips.org\/about","screen_name":"jnunemaker","name":"John Nunemaker","statuses_count":4650,"protected":false,"profile_link_color":"2FC2EF","created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"profile_sidebar_border_color":"181A1E","followers_count":1226},"text":"Sat on a fat bob today. Want! http:\/\/tr.im\/i7ha Love the flat black. Wish I could get a used one for less money, but they are too new.","truncated":false,"in_reply_to_status_id":null,"in_reply_to_user_id":null,"created_at":"Wed Apr 01 23:16:13 +0000 2009","favorited":false,"id":1434842036,"source":"web"},{"favorited":false,"user":{"profile_background_image_url":"http:\/\/static.twitter.com\/images\/themes\/theme9\/bg.gif","friends_count":179,"description":"Loves his wife, ruby, notre dame football and iu basketball","utc_offset":-18000,"profile_background_color":"1A1B1F","following":true,"time_zone":"Indiana (East)","profile_text_color":"666666","followers_count":1226,"url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","notifications":false,"profile_background_tile":false,"favourites_count":72,"profile_link_color":"2FC2EF","screen_name":"jnunemaker","statuses_count":4649,"profile_sidebar_fill_color":"252429","location":"Mishawaka, Indiana","id":4243,"created_at":"Sun Aug 13 22:56:06 +0000 2006","profile_sidebar_border_color":"181A1E"},"text":"@Carrie I agree with @orderedlist. Taco Bell is better than Hacienda.","in_reply_to_screen_name":"Carrie","truncated":false,"in_reply_to_status_id":1434732331,"id":1434741725,"in_reply_to_user_id":15323,"source":"<a href=\"http:\/\/loungeapp.com\">Lounge<\/a>","created_at":"Wed Apr 01 22:57:45 +0000 2009"},{"truncated":false,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","location":"Mishawaka, Indiana","id":4243,"followers_count":1226,"screen_name":"jnunemaker"},"in_reply_to_status_id":null,"text":"Just test drove an Escape with @nunieswife and visited the Harley Store. Johnny want a Harley...BAD!","in_reply_to_user_id":null,"favorited":false,"created_at":"Wed Apr 01 22:31:04 +0000 2009","in_reply_to_screen_name":null,"id":1434591491,"source":"web"},{"truncated":false,"user":{"description":"Loves his wife, ruby, notre dame football and iu basketball","url":"http:\/\/railstips.org\/about","name":"John Nunemaker","protected":false,"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/61024905\/black250_normal.jpg","location":"Mishawaka, Indiana","id":4243,"followers_count":1222,"screen_name":"jnunemaker"},"in_reply_to_status_id":1431726310,"text":"@acornoAk Consider yourself unfollowed for that prank.","in_reply_to_user_id":18173702,"favorited":false,"created_at":"Wed Apr 01 14:52:45 +0000 2009","in_reply_to_screen_name":"acornoAk","id":1431763938,"source":"web"}]
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'shoulda'
|
4
|
+
require 'matchy'
|
5
|
+
require 'mocha'
|
6
|
+
require 'fakeweb'
|
7
|
+
|
8
|
+
FakeWeb.allow_net_connect = false
|
9
|
+
|
10
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
11
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
12
|
+
require 'twitter'
|
13
|
+
|
14
|
+
class Test::Unit::TestCase
|
15
|
+
end
|
16
|
+
|
17
|
+
def fixture_file(filename)
|
18
|
+
return '' if filename == ''
|
19
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
20
|
+
File.read(file_path)
|
21
|
+
end
|
22
|
+
|
23
|
+
def twitter_url(url)
|
24
|
+
url =~ /^http/ ? url : "http://twitter.com:80#{url}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def stub_get(url, filename, status=nil)
|
28
|
+
options = {:string => fixture_file(filename)}
|
29
|
+
options.merge!({:status => status}) unless status.nil?
|
30
|
+
|
31
|
+
FakeWeb.register_uri(:get, twitter_url(url), options)
|
32
|
+
end
|
33
|
+
|
34
|
+
def stub_post(url, filename)
|
35
|
+
FakeWeb.register_uri(:post, twitter_url(url), :string => fixture_file(filename))
|
36
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
class BaseTest < Test::Unit::TestCase
|
4
|
+
context "Base" do
|
5
|
+
setup do
|
6
|
+
@twitter = Twitter::Base.new
|
7
|
+
end
|
8
|
+
|
9
|
+
context "on initialize without a client" do
|
10
|
+
should "provide default NoAuth client" do
|
11
|
+
@twitter.client.is_a? Twitter::NoAuth
|
12
|
+
# TODO move to NoAuth test
|
13
|
+
@twitter.client.should respond_to(:get)
|
14
|
+
@twitter.client.should respond_to(:post)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "" do
|
19
|
+
setup do
|
20
|
+
@client = Twitter::NoAuth.new
|
21
|
+
@twitter = Twitter::Base.new(@client)
|
22
|
+
end
|
23
|
+
|
24
|
+
should "delegate get to the client" do
|
25
|
+
@client.expects(:get).with('/foo').returns(nil)
|
26
|
+
@twitter.get('/foo')
|
27
|
+
end
|
28
|
+
|
29
|
+
should "delegate post to the client" do
|
30
|
+
@client.expects(:post).with('/foo', {:bar => 'baz'}).returns(nil)
|
31
|
+
@twitter.post('/foo', {:bar => 'baz'})
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "with unauthorized client" do
|
36
|
+
setup do
|
37
|
+
@twitter = Twitter::Base.new
|
38
|
+
end
|
39
|
+
|
40
|
+
context "hitting the api" do
|
41
|
+
should "be able to get specified user data" do
|
42
|
+
stub_get('/users/show/jnunemaker.json', 'user.json')
|
43
|
+
user = @twitter.user('jnunemaker')
|
44
|
+
user.name.should == 'John Nunemaker'
|
45
|
+
user.id.should == 4243
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "with authorized client" do
|
51
|
+
setup do
|
52
|
+
oauth = Twitter::OAuth.new('token', 'secret')
|
53
|
+
@access_token = OAuth::AccessToken.new(oauth.consumer, 'atoken', 'asecret')
|
54
|
+
oauth.stubs(:access_token).returns(@access_token)
|
55
|
+
@twitter = Twitter::Base.new(oauth)
|
56
|
+
end
|
57
|
+
|
58
|
+
context "hitting the api" do
|
59
|
+
should "be able to get authorized user info" do
|
60
|
+
stub_get('/account/verify_credentials.json', 'user.json')
|
61
|
+
user = @twitter.user
|
62
|
+
user.name.should == 'John Nunemaker'
|
63
|
+
user.id.should == 4243
|
64
|
+
end
|
65
|
+
|
66
|
+
should "be able to get friends timeline" do
|
67
|
+
stub_get('/statuses/friends_timeline.json', 'friends_timeline.json')
|
68
|
+
timeline = @twitter.friends_timeline
|
69
|
+
timeline.size.should == 20
|
70
|
+
first = timeline.first
|
71
|
+
first.source.should == '<a href="http://www.atebits.com/software/tweetie/">Tweetie</a>'
|
72
|
+
first.user.name.should == 'John Nunemaker'
|
73
|
+
first.user.url.should == 'http://railstips.org/about'
|
74
|
+
first.id.should == 1441588944
|
75
|
+
first.favorited.should be(false)
|
76
|
+
end
|
77
|
+
|
78
|
+
should "be able to get user timeline" do
|
79
|
+
stub_get('/statuses/user_timeline.json', 'user_timeline.json')
|
80
|
+
timeline = @twitter.user_timeline
|
81
|
+
timeline.size.should == 20
|
82
|
+
first = timeline.first
|
83
|
+
first.text.should == 'Colder out today than expected. Headed to the Beanery for some morning wakeup drink. Latte or coffee...hmmm...'
|
84
|
+
first.user.name.should == 'John Nunemaker'
|
85
|
+
end
|
86
|
+
|
87
|
+
should "be able to get a status" do
|
88
|
+
stub_get('/statuses/show/1441588944.json', 'status.json')
|
89
|
+
status = @twitter.status(1441588944)
|
90
|
+
status.user.name.should == 'John Nunemaker'
|
91
|
+
status.id.should == 1441588944
|
92
|
+
end
|
93
|
+
|
94
|
+
should "be able to update status" do
|
95
|
+
stub_post('/statuses/update.json', 'status.json')
|
96
|
+
status = @twitter.update('Rob Dyrdek is the funniest man alive. That is all.')
|
97
|
+
status.user.name.should == 'John Nunemaker'
|
98
|
+
status.text.should == 'Rob Dyrdek is the funniest man alive. That is all.'
|
99
|
+
end
|
100
|
+
|
101
|
+
should "be able to get replies" do
|
102
|
+
stub_get('/statuses/replies.json', 'replies.json')
|
103
|
+
replies = @twitter.replies
|
104
|
+
replies.size.should == 19
|
105
|
+
first = replies.first
|
106
|
+
first.user.name.should == '-oAk-'
|
107
|
+
first.text.should == '@jnunemaker cold out today. cold yesterday. even colder today.'
|
108
|
+
end
|
109
|
+
|
110
|
+
should "correctly hash statuses" do
|
111
|
+
stub_get('/statuses/friends_timeline.json', 'friends_timeline.json')
|
112
|
+
hashes = @twitter.friends_timeline.map{ |s| s.hash }
|
113
|
+
hashes.should == @twitter.friends_timeline.map{ |s| s.hash }
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
class HTTPAuthTest < Test::Unit::TestCase
|
4
|
+
context "Creating new instance" do
|
5
|
+
should "should take user and password" do
|
6
|
+
twitter = Twitter::HTTPAuth.new('username', 'password')
|
7
|
+
twitter.username.should == 'username'
|
8
|
+
twitter.password.should == 'password'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
context "Client methods" do
|
13
|
+
setup do
|
14
|
+
@twitter = Twitter::HTTPAuth.new('username', 'password')
|
15
|
+
end
|
16
|
+
|
17
|
+
should "be able to get" do
|
18
|
+
stub_get('http://twitter.com:80/statuses/user_timeline.json', 'user_timeline.json')
|
19
|
+
response = @twitter.get('/statuses/user_timeline.json')
|
20
|
+
response.should == fixture_file('user_timeline.json')
|
21
|
+
end
|
22
|
+
|
23
|
+
should "be able to get with headers" do
|
24
|
+
@twitter.class.expects(:get).with(
|
25
|
+
'/statuses/user_timeline.json', {
|
26
|
+
:basic_auth => {:username => 'username', :password => 'password'},
|
27
|
+
:headers => {'Foo' => 'Bar'}
|
28
|
+
}
|
29
|
+
).returns(fixture_file('user_timeline.json'))
|
30
|
+
@twitter.get('/statuses/user_timeline.json', {'Foo' => 'Bar'})
|
31
|
+
end
|
32
|
+
|
33
|
+
should "be able to post" do
|
34
|
+
stub_post('http://twitter.com:80/statuses/update.json', 'status.json')
|
35
|
+
response = @twitter.post('/statuses/update.json', :text => 'My update.')
|
36
|
+
response.should == fixture_file('status.json')
|
37
|
+
end
|
38
|
+
|
39
|
+
should "be able to post with headers" do
|
40
|
+
@twitter.class.expects(:post).with(
|
41
|
+
'/statuses/update.json', {
|
42
|
+
:headers => {'Foo' => 'Bar'},
|
43
|
+
:body => {:text => 'My update.'},
|
44
|
+
:basic_auth => {:username => 'username', :password => 'password'}
|
45
|
+
}
|
46
|
+
).returns(fixture_file('status.json'))
|
47
|
+
@twitter.post('/statuses/update.json', {:text => 'My update.'}, {'Foo' => 'Bar'})
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
class NoAuthTest < Test::Unit::TestCase
|
4
|
+
context "Client methods" do
|
5
|
+
setup do
|
6
|
+
@twitter = Twitter::NoAuth.new
|
7
|
+
end
|
8
|
+
|
9
|
+
should "be able to get" do
|
10
|
+
stub_get('http://twitter.com:80/users/show/mike.json', 'user.json')
|
11
|
+
response = @twitter.get('/users/show/mike.json')
|
12
|
+
response.should == fixture_file('user.json')
|
13
|
+
end
|
14
|
+
|
15
|
+
should "be able to get with headers" do
|
16
|
+
@twitter.class.expects(:get).with(
|
17
|
+
'/users/show/mike.json', {
|
18
|
+
:headers => {'Foo' => 'Bar'}
|
19
|
+
}
|
20
|
+
).returns(fixture_file('user.json'))
|
21
|
+
@twitter.get('/users/show/mike.json', {'Foo' => 'Bar'})
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|