t 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require 'helper'
3
3
 
4
- describe T::CLI::Delete do
4
+ describe T::Delete do
5
5
 
6
6
  before do
7
7
  rcfile = RCFile.instance
@@ -85,7 +85,7 @@ describe T::CLI::Delete do
85
85
  @t.options = @t.options.merge(:force => false)
86
86
  end
87
87
  it "should request the correct resource" do
88
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? ")
88
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? [y/N] ")
89
89
  $stdin.should_receive(:gets).and_return("yes")
90
90
  @t.delete("dm")
91
91
  a_get("/1/direct_messages/sent.json").
@@ -97,7 +97,7 @@ describe T::CLI::Delete do
97
97
  end
98
98
  context "yes" do
99
99
  it "should have the correct output" do
100
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? ")
100
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? [y/N] ")
101
101
  $stdin.should_receive(:gets).and_return("yes")
102
102
  @t.delete("dm")
103
103
  $stdout.string.chomp.should == "@sferik deleted the direct message sent to @pengwynn: \"Creating a fixture for the Twitter gem\""
@@ -105,7 +105,7 @@ describe T::CLI::Delete do
105
105
  end
106
106
  context "no" do
107
107
  it "should have the correct output" do
108
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? ")
108
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? [y/N] ")
109
109
  $stdin.should_receive(:gets).and_return("no")
110
110
  @t.delete("dm")
111
111
  $stdout.string.chomp.should == ""
@@ -118,76 +118,57 @@ describe T::CLI::Delete do
118
118
  describe "#favorite" do
119
119
  before do
120
120
  @t.options = @t.options.merge(:profile => fixture_path + "/.trc")
121
+ stub_delete("/1/favorites/destroy/28439861609.json").
122
+ with(:query => {:include_entities => "false"}).
123
+ to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
121
124
  end
122
- context "not found" do
125
+ context ":force => true" do
123
126
  before do
124
- stub_get("/1/favorites.json").
125
- with(:query => {:count => "1", :include_entities => "false"}).
126
- to_return(:body => "[]", :headers => {:content_type => "application/json; charset=utf-8"})
127
+ @t.options = @t.options.merge(:force => true)
127
128
  end
128
- it "should exit" do
129
- lambda do
130
- @t.delete("favorite")
131
- end.should raise_error(Thor::Error, "Tweet not found")
129
+ it "should request the correct resource" do
130
+ @t.delete("favorite", "28439861609")
131
+ a_delete("/1/favorites/destroy/28439861609.json").
132
+ with(:query => {:include_entities => "false"}).
133
+ should have_been_made
134
+ end
135
+ it "should have the correct output" do
136
+ @t.delete("favorite", "28439861609")
137
+ $stdout.string.should =~ /^@testcli unfavorited @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem\. Twurl is making it easy\. Thank you!\"$/
132
138
  end
133
139
  end
134
- context "found" do
140
+ context ":force => false" do
135
141
  before do
136
- stub_get("/1/favorites.json").
137
- with(:query => {:count => "1", :include_entities => "false"}).
138
- to_return(:body => fixture("favorites.json"), :headers => {:content_type => "application/json; charset=utf-8"})
139
- stub_delete("/1/favorites/destroy/28439861609.json").
140
- with(:query => {:include_entities => "false"}).
142
+ @t.options = @t.options.merge(:force => false)
143
+ stub_get("/1/statuses/show/28439861609.json").
144
+ with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
141
145
  to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
142
146
  end
143
- context ":force => true" do
144
- before do
145
- @t.options = @t.options.merge(:force => true)
146
- end
147
- it "should request the correct resource" do
148
- @t.delete("favorite")
149
- a_get("/1/favorites.json").
150
- with(:query => {:count => "1", :include_entities => "false"}).
151
- should have_been_made
152
- a_delete("/1/favorites/destroy/28439861609.json").
153
- with(:query => {:include_entities => "false"}).
154
- should have_been_made
155
- end
156
- it "should have the correct output" do
157
- @t.delete("favorite")
158
- $stdout.string.should =~ /^@testcli unfavorited @z's latest status: \"Spilled grilled onions on myself\. I smell delicious!\"$/
159
- end
147
+ it "should request the correct resource" do
148
+ $stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem\. Twurl is making it easy\. Thank you!\"? [y/N] ")
149
+ $stdin.should_receive(:gets).and_return("yes")
150
+ @t.delete("favorite", "28439861609")
151
+ a_get("/1/statuses/show/28439861609.json").
152
+ with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
153
+ should have_been_made
154
+ a_delete("/1/favorites/destroy/28439861609.json").
155
+ with(:query => {:include_entities => "false"}).
156
+ should have_been_made
160
157
  end
161
- context ":force => false" do
162
- before do
163
- @t.options = @t.options.merge(:force => false)
164
- end
165
- it "should request the correct resource" do
166
- $stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @z's latest status: \"Spilled grilled onions on myself. I smell delicious!\"? ")
158
+ context "yes" do
159
+ it "should have the correct output" do
160
+ $stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
167
161
  $stdin.should_receive(:gets).and_return("yes")
168
- @t.delete("favorite")
169
- a_get("/1/favorites.json").
170
- with(:query => {:count => "1", :include_entities => "false"}).
171
- should have_been_made
172
- a_delete("/1/favorites/destroy/28439861609.json").
173
- with(:query => {:include_entities => "false"}).
174
- should have_been_made
162
+ @t.delete("favorite", "28439861609")
163
+ $stdout.string.should =~ /^@testcli unfavorited @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem\. Twurl is making it easy\. Thank you!\"$/
175
164
  end
176
- context "yes" do
177
- it "should have the correct output" do
178
- $stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @z's latest status: \"Spilled grilled onions on myself. I smell delicious!\"? ")
179
- $stdin.should_receive(:gets).and_return("yes")
180
- @t.delete("favorite")
181
- $stdout.string.should =~ /^@testcli unfavorited @z's latest status: \"Spilled grilled onions on myself\. I smell delicious!\"$/
182
- end
183
- end
184
- context "no" do
185
- it "should have the correct output" do
186
- $stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @z's latest status: \"Spilled grilled onions on myself. I smell delicious!\"? ")
187
- $stdin.should_receive(:gets).and_return("no")
188
- @t.delete("favorite")
189
- $stdout.string.chomp.should == ""
190
- end
165
+ end
166
+ context "no" do
167
+ it "should have the correct output" do
168
+ $stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
169
+ $stdin.should_receive(:gets).and_return("no")
170
+ @t.delete("favorite", "28439861609")
171
+ $stdout.string.chomp.should == ""
191
172
  end
192
173
  end
193
174
  end
@@ -224,7 +205,7 @@ describe T::CLI::Delete do
224
205
  @t.options = @t.options.merge(:force => false)
225
206
  end
226
207
  it "should request the correct resource" do
227
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? ")
208
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
228
209
  $stdin.should_receive(:gets).and_return("yes")
229
210
  @t.delete("list", "presidents")
230
211
  a_get("/1/account/verify_credentials.json").
@@ -235,7 +216,7 @@ describe T::CLI::Delete do
235
216
  end
236
217
  context "yes" do
237
218
  it "should have the correct output" do
238
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? ")
219
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
239
220
  $stdin.should_receive(:gets).and_return("yes")
240
221
  @t.delete("list", "presidents")
241
222
  $stdout.string.chomp.should == "@testcli deleted the list \"presidents\"."
@@ -243,7 +224,7 @@ describe T::CLI::Delete do
243
224
  end
244
225
  context "no" do
245
226
  it "should have the correct output" do
246
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? ")
227
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
247
228
  $stdin.should_receive(:gets).and_return("no")
248
229
  @t.delete("list", "presidents")
249
230
  $stdout.string.chomp.should == ""
@@ -255,76 +236,57 @@ describe T::CLI::Delete do
255
236
  describe "#status" do
256
237
  before do
257
238
  @t.options = @t.options.merge(:profile => fixture_path + "/.trc")
239
+ stub_delete("/1/statuses/destroy/26755176471724032.json").
240
+ with(:query => {:include_entities => "false", :trim_user => "true"}).
241
+ to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
258
242
  end
259
- context "not found" do
243
+ context ":force => true" do
260
244
  before do
261
- stub_get("/1/account/verify_credentials.json").
262
- with(:query => {:include_entities => "false"}).
263
- to_return(:body => "{}", :headers => {:content_type => "application/json; charset=utf-8"})
245
+ @t.options = @t.options.merge(:force => true)
264
246
  end
265
- it "should exit" do
266
- lambda do
267
- @t.delete("status")
268
- end.should raise_error(Thor::Error, "Tweet not found")
247
+ it "should request the correct resource" do
248
+ @t.delete("status", "26755176471724032")
249
+ a_delete("/1/statuses/destroy/26755176471724032.json").
250
+ with(:query => {:include_entities => "false", :trim_user => "true"}).
251
+ should have_been_made
252
+ end
253
+ it "should have the correct output" do
254
+ @t.delete("status", "26755176471724032")
255
+ $stdout.string.chomp.should == "@testcli deleted the status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\""
269
256
  end
270
257
  end
271
- context "found" do
258
+ context ":force => false" do
272
259
  before do
273
- stub_get("/1/account/verify_credentials.json").
274
- with(:query => {:include_entities => "false"}).
275
- to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
276
- stub_delete("/1/statuses/destroy/26755176471724032.json").
277
- with(:query => {:include_entities => "false", :trim_user => "true"}).
260
+ @t.options = @t.options.merge(:force => false)
261
+ stub_get("/1/statuses/show/26755176471724032.json").
262
+ with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
278
263
  to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
279
264
  end
280
- context ":force => true" do
281
- before do
282
- @t.options = @t.options.merge(:force => true)
283
- end
284
- it "should request the correct resource" do
285
- @t.delete("status")
286
- a_get("/1/account/verify_credentials.json").
287
- with(:query => {:include_entities => "false"}).
288
- should have_been_made
289
- a_delete("/1/statuses/destroy/26755176471724032.json").
290
- with(:query => {:include_entities => "false", :trim_user => "true"}).
291
- should have_been_made
292
- end
265
+ it "should request the correct resource" do
266
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
267
+ $stdin.should_receive(:gets).and_return("yes")
268
+ @t.delete("status", "26755176471724032")
269
+ a_get("/1/statuses/show/26755176471724032.json").
270
+ with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
271
+ should have_been_made
272
+ a_delete("/1/statuses/destroy/26755176471724032.json").
273
+ with(:query => {:include_entities => "false", :trim_user => "true"}).
274
+ should have_been_made
275
+ end
276
+ context "yes" do
293
277
  it "should have the correct output" do
294
- @t.delete("status")
278
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
279
+ $stdin.should_receive(:gets).and_return("yes")
280
+ @t.delete("status", "26755176471724032")
295
281
  $stdout.string.chomp.should == "@testcli deleted the status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\""
296
282
  end
297
283
  end
298
- context ":force => false" do
299
- before do
300
- @t.options = @t.options.merge(:force => false)
301
- end
302
- it "should request the correct resource" do
303
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete @testcli's latest status: \"RT @tenderlove: [ANN] sqlite3-ruby => sqlite3\"? ")
304
- $stdin.should_receive(:gets).and_return("yes")
305
- @t.delete("status")
306
- a_get("/1/account/verify_credentials.json").
307
- with(:query => {:include_entities => "false"}).
308
- should have_been_made
309
- a_delete("/1/statuses/destroy/26755176471724032.json").
310
- with(:query => {:include_entities => "false", :trim_user => "true"}).
311
- should have_been_made
312
- end
313
- context "yes" do
314
- it "should have the correct output" do
315
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete @testcli's latest status: \"RT @tenderlove: [ANN] sqlite3-ruby => sqlite3\"? ")
316
- $stdin.should_receive(:gets).and_return("yes")
317
- @t.delete("status")
318
- $stdout.string.chomp.should == "@testcli deleted the status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\""
319
- end
320
- end
321
- context "no" do
322
- it "should have the correct output" do
323
- $stdout.should_receive(:print).with("Are you sure you want to permanently delete @testcli's latest status: \"RT @tenderlove: [ANN] sqlite3-ruby => sqlite3\"? ")
324
- $stdin.should_receive(:gets).and_return("no")
325
- @t.delete("status")
326
- $stdout.string.chomp.should == ""
327
- end
284
+ context "no" do
285
+ it "should have the correct output" do
286
+ $stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
287
+ $stdin.should_receive(:gets).and_return("no")
288
+ @t.delete("status", "26755176471724032")
289
+ $stdout.string.chomp.should == ""
328
290
  end
329
291
  end
330
292
  end
@@ -1 +1 @@
1
- [{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"default_profile":true,"profile_use_background_image":true,"name":"John Trupiano","contributors_enabled":false,"created_at":"Sun May 11 19:46:06 +0000 2008","profile_background_color":"C0DEED","listed_count":99,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-18000,"description":"Owner of @smartlogic. I tweet a mixed stream of incoherence and inside jokes. My tweets make me laugh; your mileage will vary.","verified":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","id_str":"14736332","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":117,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Sat Aug 20 03:27:22 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104756380472324096","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/#!\/download\/iphone\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","id":104756380472324096,"text":"Jimmy Johns: the best place to go right after getting pepper sprayed."},"friends_count":545,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","screen_name":"jtrupiano","default_profile_image":false,"show_all_inline_media":false,"geo_enabled":false,"profile_background_tile":false,"location":"Baltimore, MD","notifications":null,"is_translator":false,"profile_link_color":"0084B4","url":"http:\/\/smartlogicsolutions.com\/john","id":14736332,"follow_request_sent":null,"statuses_count":3850,"following":null,"profile_sidebar_border_color":"C0DEED","followers_count":802},"token":"1"},{"user":{"follow_request_sent":false,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Matt Laroche","created_at":"Sun Apr 20 12:05:38 +0000 2008","profile_background_color":"C6E2EE","show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme2\/bg.gif","utc_offset":-28800,"description":"Software engineer, beer advocate, Palo Altan, husband.","listed_count":20,"verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","id_str":"14451152","lang":"en","favourites_count":10,"profile_text_color":"663B12","status":{"truncated":false,"created_at":"Sun Aug 21 20:59:41 +0000 2011","geo":{"type":"Point","coordinates":[33.8043296,-117.9226607]},"in_reply_to_user_id":20113974,"in_reply_to_status_id":105382259623854081,"favorited":false,"in_reply_to_status_id_str":"105382259623854081","coordinates":{"type":"Point","coordinates":[-117.9226607,33.8043296]},"id_str":"105383592376537088","in_reply_to_screen_name":"chasesterling","in_reply_to_user_id_str":"20113974","place":{"country_code":"US","name":"Anaheim","attributes":{},"full_name":"Anaheim, CA","place_type":"city","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-118.017597,33.788835],[-117.674604,33.788835],[-117.674604,33.881456],[-118.017597,33.881456]]]},"id":"0c2e6999105f8070","url":"http:\/\/api.twitter.com\/1\/geo\/id\/0c2e6999105f8070.json"},"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003ETwitter for Android\u003C\/a\u003E","id":105383592376537088,"text":"@chasesterling sadly in a fake vending machine at the Monsters Inc ride at Disney's California Adventure."},"statuses_count":6251,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme2\/bg.gif","profile_sidebar_fill_color":"DAECF4","screen_name":"mlroach","profile_background_tile":false,"friends_count":403,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","location":"Palo Alto, California","default_profile_image":false,"notifications":false,"default_profile":false,"profile_link_color":"1F98C7","url":null,"id":14451152,"is_translator":false,"following":false,"profile_sidebar_border_color":"C6E2EE","followers_count":299},"token":"21"},{"user":{"follow_request_sent":false,"statuses_count":183,"time_zone":"Greenland","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","name":"AntonioPires","created_at":"Sat May 16 18:24:33 +0000 2009","profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","utc_offset":-10800,"description":"","listed_count":2,"contributors_enabled":false,"verified":false,"geo_enabled":true,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1067377349\/s_normal.jpg","id_str":"40514587","lang":"en","favourites_count":2,"profile_text_color":"828282","status":{"truncated":false,"created_at":"Mon Jun 13 16:27:31 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"80310340704931840","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"web","id":80310340704931840,"text":"Estou concorrendo a 1 ingresso do Alexandre Wollner no Rio \u2013 http:\/\/t.co\/QlJZUqF Siga @design_blog e @pensoeventos e d\u00ea RT!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"1c1c1c","screen_name":"antpires","profile_background_tile":false,"location":"Rio","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1067377349\/s_normal.jpg","friends_count":198,"profile_link_color":"e86f6f","url":"http:\/\/antpires.carbonmade.com","id":40514587,"is_translator":false,"default_profile":false,"following":false,"profile_sidebar_border_color":"000000","followers_count":158},"token":"14"},{"user":{"time_zone":"London","protected":false,"follow_request_sent":false,"profile_use_background_image":true,"name":"Alex MacCaw","created_at":"Fri Mar 23 12:36:14 +0000 2007","profile_background_color":"9ae4e8","contributors_enabled":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":0,"description":"Ruby\/JavaScript developer, O'Reilly author and entrepreneur. ","default_profile":false,"verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg","id_str":"2006261","listed_count":171,"lang":"en","favourites_count":9,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Sun Aug 21 23:54:01 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"105427467593981952","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/tweetbutton\" rel=\"nofollow\"\u003ETweet Button\u003C\/a\u003E","id":105427467593981952,"text":"Visualizing WebKit's hardware acceleration http:\/\/t.co\/nX5pvPl via @thomasfuchs"},"profile_sidebar_fill_color":"e0ff92","screen_name":"maccman","show_all_inline_media":false,"geo_enabled":true,"profile_background_tile":false,"location":"London","notifications":false,"is_translator":false,"default_profile_image":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_link_color":"0000ff","url":"http:\/\/alexmaccaw.co.uk","id":2006261,"statuses_count":4497,"following":false,"friends_count":967,"profile_sidebar_border_color":"87bc44","followers_count":2028,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg"},"token":"11"},{"user":{"follow_request_sent":false,"statuses_count":24,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","name":"stuntmann82","created_at":"Sat Aug 30 08:22:57 +0000 2008","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-28800,"description":"","listed_count":1,"contributors_enabled":false,"verified":false,"geo_enabled":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/249396146\/images_normal.jpg","id_str":"16052754","lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Nov 25 06:20:05 +0000 2009","geo":null,"in_reply_to_user_id":2889221,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"6042752864","in_reply_to_screen_name":"vitaminjeff","in_reply_to_user_id_str":"2889221","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\/\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":6042752864,"text":"@vitaminjeff Sup bro!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"DDEEF6","screen_name":"stuntmann82","profile_background_tile":false,"location":"","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/249396146\/images_normal.jpg","friends_count":5,"profile_link_color":"0084B4","url":null,"id":16052754,"is_translator":false,"default_profile":true,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":42},"token":"14"},{"user":{"listed_count":921,"time_zone":"Alaska","protected":false,"profile_use_background_image":false,"name":"Loren Brichter","show_all_inline_media":true,"geo_enabled":true,"created_at":"Sun Nov 04 17:48:57 +0000 2007","profile_background_color":"1A1B1F","expanded_url":null,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-32400,"description":"meat popsicle","display_url":null,"default_profile_image":false,"verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1054030005\/hello_normal.png","id_str":"9943672","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"lang":"en","statuses_count":1092,"favourites_count":197,"friends_count":127,"profile_text_color":"666666","status":{"truncated":false,"created_at":"Tue Aug 16 20:43:45 +0000 2011","geo":null,"in_reply_to_user_id":15048963,"in_reply_to_status_id":103567401634897920,"favorited":false,"in_reply_to_status_id_str":"103567401634897920","coordinates":null,"id_str":"103567644837429250","in_reply_to_screen_name":"jboley","in_reply_to_user_id_str":"15048963","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/itunes.apple.com\/us\/app\/twitter\/id409789998?mt=12\" rel=\"nofollow\"\u003ETwitter for Mac\u003C\/a\u003E","id":103567644837429250,"text":"@jboley could swap out the backend, base TwUI right on top of GL, then we could go nuts."},"is_translator":false,"profile_sidebar_fill_color":"252429","screen_name":"lorenb","follow_request_sent":null,"contributors_enabled":false,"profile_background_tile":false,"location":"Philly","notifications":null,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","default_profile":false,"profile_link_color":"2FC2EF","url":null,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1054030005\/hello_normal.png","id":9943672,"following":null,"profile_sidebar_border_color":"181A1E","followers_count":13101},"token":"22"},{"user":{"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Craig Hockenberry","default_profile":false,"contributors_enabled":false,"created_at":"Sat Dec 02 03:11:33 +0000 2006","profile_background_color":"CD3300","listed_count":1180,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/17652\/Untitled-1.jpg","utc_offset":-28800,"description":"HAD THE IDEA FOR TWITTERRIFIC IN THE SHOWER","verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/838441522\/P9010020_normal.jpg","id_str":"36183","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/17652\/Untitled-1.jpg","favourites_count":1774,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Thu Aug 18 15:10:58 +0000 2011","geo":null,"in_reply_to_user_id":7440462,"in_reply_to_status_id":104193896204075010,"favorited":false,"in_reply_to_status_id_str":"104193896204075010","coordinates":null,"id_str":"104208673303310337","in_reply_to_screen_name":"drance","in_reply_to_user_id_str":"7440462","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitterrific.com\" rel=\"nofollow\"\u003ETwitterrific for Mac\u003C\/a\u003E","id":104208673303310337,"text":"@drance $20 x 12 > cost of an iPhone 5"},"friends_count":412,"profile_sidebar_fill_color":"DAFFBE","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/838441522\/P9010020_normal.jpg","screen_name":"chockenberry","default_profile_image":false,"show_all_inline_media":true,"geo_enabled":false,"profile_background_tile":true,"location":"Laguna Beach, CA, USA","notifications":false,"is_translator":false,"profile_link_color":"8C3500","url":"http:\/\/furbo.org","id":36183,"follow_request_sent":false,"statuses_count":17036,"following":false,"profile_sidebar_border_color":"A6CD89","followers_count":12386},"token":"24"},{"user":{"is_translator":false,"show_all_inline_media":false,"geo_enabled":false,"time_zone":"Eastern Time (US & Canada)","protected":false,"follow_request_sent":false,"profile_use_background_image":true,"name":"Mike Dalessio","contributors_enabled":false,"created_at":"Fri May 02 14:52:50 +0000 2008","profile_background_color":"C0DEED","statuses_count":658,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-18000,"description":"Rubyist, Pragmatist, Optimist, One Trick Pony. Co-author of Nokogiri. Superpowers: none (yet).\r\n","verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1167926691\/nokogiri-mother-1-crop_normal.png","id_str":"14626544","listed_count":28,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":255,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Aug 17 22:18:33 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"103953891397345280","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":9,"source":"web","retweeted_status":{"truncated":false,"created_at":"Wed Aug 17 21:44:08 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"103945228565757952","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":9,"source":"\u003Ca href=\"http:\/\/timely.is\" rel=\"nofollow\"\u003ETimely App\u003C\/a\u003E","id":103945228565757952,"text":"SSH Can Do That? Productivity Tips for Working with Remote Servers http:\/\/t.co\/F2X0gnq <- lots of good SSH tricks"},"id":103953891397345280,"text":"RT @assaf: SSH Can Do That? Productivity Tips for Working with Remote Servers http:\/\/t.co\/F2X0gnq <- lots of good SSH tricks"},"default_profile":true,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1167926691\/nokogiri-mother-1-crop_normal.png","screen_name":"flavorjones","profile_background_tile":false,"location":"NYC \/ NJ","notifications":false,"friends_count":351,"default_profile_image":false,"profile_link_color":"0084B4","url":"http:\/\/mike.daless.io\/","id":14626544,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":375},"token":"1"},{"user":{"time_zone":"Pacific Time (US & Canada)","protected":false,"show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_use_background_image":false,"name":"GovFresh","listed_count":633,"created_at":"Sat May 02 22:19:00 +0000 2009","profile_background_color":"ffffff","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-28800,"description":"Gov 2.0, open gov news, guides, TV, tech, people. Open air government. (@lukefretwell)","statuses_count":7419,"verified":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/291447950\/icon_normal.png","id_str":"37296570","lang":"en","favourites_count":69,"friends_count":205,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/291447950\/icon_normal.png","status":{"truncated":false,"created_at":"Mon Aug 22 02:00:14 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"105459232068993024","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":105459232068993024,"text":"RT @adrielhampton: Mention on #g2r: Kundra: Closing IT gap is key to making gov't work better for the American people http:\/\/t.co\/4vywBK0"},"default_profile_image":false,"profile_sidebar_fill_color":"ffffff","screen_name":"govfresh","profile_background_tile":false,"location":"USA","is_translator":false,"notifications":false,"default_profile":false,"follow_request_sent":false,"profile_link_color":"006699","url":"http:\/\/www.govfresh.com","id":37296570,"following":false,"profile_sidebar_border_color":"ffffff","followers_count":4770},"token":"1"},{"user":{"default_profile":false,"profile_background_color":"1A1B1F","protected":false,"show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme9\/bg.gif","name":"Ola Bini","listed_count":446,"created_at":"Mon Jul 23 19:05:23 +0000 2007","id_str":"7665302","utc_offset":3600,"favourites_count":2,"profile_text_color":"666666","description":"Programming language nerd, JRuby core developer, language designer (Ioke), lisp and ruby fanatic.","statuses_count":8222,"verified":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme9\/bg.gif","profile_sidebar_fill_color":"252429","profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/52551367\/ONormal_normal.jpg","lang":"en","profile_background_tile":false,"friends_count":204,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/52551367\/ONormal_normal.jpg","status":{"truncated":false,"in_reply_to_user_id":null,"favorited":false,"in_reply_to_status_id_str":null,"created_at":"Sun Aug 21 02:29:20 +0000 2011","id_str":"105104165822410752","geo":{"type":"Point","coordinates":[41.90894375,-87.67776878]},"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"coordinates":{"type":"Point","coordinates":[-87.67776878,41.90894375]},"contributors":null,"retweeted":false,"place":{"place_type":"city","country_code":"US","name":"Chicago","attributes":{},"full_name":"Chicago, IL","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-87.940101,41.644582],[-87.523661,41.644582],[-87.523661,42.023019],[-87.940101,42.023019]]]},"id":"1d9a5370a355ab0c","url":"http:\/\/api.twitter.com\/1\/geo\/id\/1d9a5370a355ab0c.json"},"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":105104165822410752,"text":"Tonight the violet hour with lots of friends"},"default_profile_image":false,"screen_name":"olabini","profile_link_color":"2FC2EF","location":"iPhone: 40.755951,-73.968864","is_translator":false,"notifications":false,"profile_sidebar_border_color":"181A1E","follow_request_sent":false,"time_zone":"Stockholm","url":"http:\/\/olabini.com\/blog","id":7665302,"following":false,"profile_use_background_image":true,"followers_count":4905},"token":"1"},{"user":{"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme9\/bg.gif","time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"friends_count":31485,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1408709905\/at-twitter_bigger_normal.png","name":"Spam Watch","default_profile_image":false,"created_at":"Tue Apr 29 19:55:39 +0000 2008","profile_background_color":"1A1B1F","expanded_url":null,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme9\/bg.gif","utc_offset":-28800,"description":"Suspect Twitter spam? Let us know (http:\/\/bit.ly\/Tweport)! Follow @spam & @safety for helpful info, and check out our favorite tips: http:\/\/bit.ly\/spamfav","display_url":null,"is_translator":false,"show_all_inline_media":false,"verified":true,"geo_enabled":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1408709905\/at-twitter_bigger_normal.png","id_str":"14589771","entities":{"user_mentions":[{"name":"Spam Watch","indices":[67,72],"id_str":"14589771","screen_name":"spam","id":14589771},{"name":"Safety","indices":[75,82],"id_str":"95731075","screen_name":"safety","id":95731075}],"urls":[{"expanded_url":null,"indices":[35,56],"url":"http:\/\/bit.ly\/Tweport"},{"expanded_url":null,"indices":[134,155],"url":"http:\/\/bit.ly\/spamfav"}],"hashtags":[]},"follow_request_sent":false,"lang":"en","favourites_count":13,"profile_text_color":"888888","status":{"truncated":false,"created_at":"Thu Aug 18 17:59:14 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104251017306185728","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":"100+","source":"web","retweeted_status":{"truncated":false,"created_at":"Thu Aug 18 17:58:29 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104250831292993536","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":[139769125],"retweeted":false,"retweet_count":"100+","source":"web","id":104250831292993536,"text":"Seeing Tweets that you need to sign a petition to keep Twitter free? Don't click. It's fake and will steal your password."},"id":104251017306185728,"text":"RT @safety: Seeing Tweets that you need to sign a petition to keep Twitter free? Don't click. It's fake and will steal your password."},"default_profile":false,"profile_sidebar_fill_color":"252429","screen_name":"spam","statuses_count":166,"profile_background_tile":false,"location":"Twitter HQ","contributors_enabled":true,"notifications":false,"listed_count":8679,"profile_link_color":"2FC2EF","url":"http:\/\/help.twitter.com\/entries\/64986","id":14589771,"following":false,"profile_sidebar_border_color":"181A1E","followers_count":627222},"token":"22"},{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Ethan Marcotte","contributors_enabled":false,"created_at":"Wed Nov 15 15:59:51 +0000 2006","profile_background_color":"121212","listed_count":1460,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/224737148\/clint.jpg","utc_offset":-18000,"description":"Designer, developer. Started that whole \u201cresponsive web design\u201d thing.\r\n\r\n\u201cEight? Who taught you math?\u201d","verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1266637465\/sammy-boy_normal.png","id_str":"12534","default_profile":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/224737148\/clint.jpg","favourites_count":25929,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Sun Aug 21 17:04:59 +0000 2011","geo":null,"in_reply_to_user_id":14318544,"in_reply_to_status_id":105321846462889984,"favorited":false,"in_reply_to_status_id_str":"105321846462889984","coordinates":null,"id_str":"105324529127137280","in_reply_to_screen_name":"blissbat","in_reply_to_user_id_str":"14318544","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitterrific.com\" rel=\"nofollow\"\u003ETwitterrific\u003C\/a\u003E","id":105324529127137280,"text":"@blissbat Oh my god. That is lovely. (And positively Templesmithian.)"},"friends_count":398,"profile_sidebar_fill_color":"7D7D7D","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1266637465\/sammy-boy_normal.png","screen_name":"beep","default_profile_image":false,"show_all_inline_media":true,"geo_enabled":false,"profile_background_tile":true,"location":"Cambridge, MA","notifications":false,"is_translator":false,"profile_link_color":"990000","url":"http:\/\/ethanmarcotte.com\/","id":12534,"follow_request_sent":false,"statuses_count":10490,"following":false,"profile_sidebar_border_color":"7D7D7D","followers_count":16264},"token":"22"},{"user":{"follow_request_sent":false,"time_zone":"Central Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"John Clay","created_at":"Sat Mar 14 05:19:35 +0000 2009","profile_background_color":"000000","show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/7637392\/twitterbg1.jpg","utc_offset":-21600,"description":"1 Part Artist, 1 Part Geek, With a Splash of Pop Culture","listed_count":6,"verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1112575277\/41220_579052302952_57100648_33412341_4990242_n_normal.jpg","id_str":"24334548","default_profile":false,"lang":"en","favourites_count":2,"profile_text_color":"32332e","status":{"truncated":false,"created_at":"Wed Jul 27 04:23:15 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"96073136679825409","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"web","id":96073136679825409,"text":"http:\/\/t.co\/MKMlBcQ Well played @OldSpice - My vote is for #teamoldspiceguy. The writers and marketing team deserve a raise."},"statuses_count":477,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/7637392\/twitterbg1.jpg","profile_sidebar_fill_color":"8c8c88","screen_name":"Clayjm","profile_background_tile":false,"friends_count":103,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1112575277\/41220_579052302952_57100648_33412341_4990242_n_normal.jpg","location":"Missouri","default_profile_image":false,"notifications":false,"profile_link_color":"c6c09f","url":null,"id":24334548,"is_translator":false,"following":false,"profile_sidebar_border_color":"181A1E","followers_count":305},"token":"14"},{"user":{"default_profile":false,"time_zone":"Eastern Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"KaT","show_all_inline_media":false,"listed_count":1,"geo_enabled":false,"created_at":"Sat Mar 17 01:08:54 +0000 2007","profile_background_color":"1A1B1F","contributors_enabled":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme9\/bg.gif","utc_offset":-18000,"description":"","verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1496023849\/Clipboard01_normal.jpg","id_str":"1325781","lang":"en","statuses_count":1091,"favourites_count":0,"friends_count":71,"profile_text_color":"666666","status":{"truncated":false,"created_at":"Thu Aug 18 20:57:06 +0000 2011","geo":null,"in_reply_to_user_id":251147079,"in_reply_to_status_id":104281588854030336,"favorited":false,"in_reply_to_status_id_str":"104281588854030336","coordinates":null,"id_str":"104295781024010240","in_reply_to_screen_name":"zImperium","in_reply_to_user_id_str":"251147079","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003ETwitter for Android\u003C\/a\u003E","id":104295781024010240,"text":"@zImperium when will this be on the market since this is a closed beta ?"},"default_profile_image":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme9\/bg.gif","profile_sidebar_fill_color":"252429","screen_name":"katzworld","profile_background_tile":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1496023849\/Clipboard01_normal.jpg","location":"MD,USA","is_translator":false,"notifications":false,"follow_request_sent":false,"profile_link_color":"2FC2EF","url":null,"id":1325781,"following":false,"profile_sidebar_border_color":"181A1E","followers_count":269},"token":"14"},{"user":{"time_zone":"Central Time (US & Canada)","protected":true,"listed_count":2,"statuses_count":47,"profile_use_background_image":true,"name":"Angelika Biteme","contributors_enabled":false,"created_at":"Tue Jun 09 09:54:31 +0000 2009","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-21600,"description":"Because I am addictted to Spymaster & can't go up any more levels, I started a new account. I admitted the addiction. Now I need an intervention.","verified":false,"friends_count":375,"profile_image_url":"http:\/\/a0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","id_str":"45805107","default_profile_image":true,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":0,"profile_text_color":"333333","default_profile":true,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","screen_name":"AngelikaSpy","is_translator":false,"show_all_inline_media":false,"profile_background_tile":false,"location":"Um, the computer desk. Duh.","follow_request_sent":false,"notifications":false,"profile_link_color":"0084B4","url":"http:\/\/angelika1972.blogspot.com\/","id":45805107,"following":false,"geo_enabled":false,"profile_sidebar_border_color":"C0DEED","followers_count":131},"token":"14"},{"user":{"time_zone":"Alaska","protected":false,"profile_use_background_image":true,"name":"LikeMinded","contributors_enabled":false,"created_at":"Fri Oct 29 23:32:48 +0000 2010","profile_background_color":"C0DEED","default_profile":false,"listed_count":26,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/168455631\/free_twitter_designer.jpg","utc_offset":-32400,"description":"An online tool for offline community action, built by Craigslist Foundation. Share or discover an idea for change today!","verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1159898446\/lm_twitter_normal.gif","id_str":"209802925","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/168455631\/free_twitter_designer.jpg","favourites_count":1,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Thu Aug 18 23:29:09 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104334044203986945","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":4,"source":"\u003Ca href=\"http:\/\/www.hootsuite.com\" rel=\"nofollow\"\u003EHootSuite\u003C\/a\u003E","retweeted_status":{"truncated":false,"created_at":"Wed Aug 17 21:19:09 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"103938943233437696","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":4,"source":"\u003Ca href=\"http:\/\/www.hootsuite.com\" rel=\"nofollow\"\u003EHootSuite\u003C\/a\u003E","id":103938943233437696,"text":"Voting is now open for #SXSW panels! Please go vote for our panel with @Bluecadet @lkmnd on creating offline community http:\/\/ow.ly\/65TMm"},"id":104334044203986945,"text":"RT @atlasobscura: Voting is now open for #SXSW panels! Please go vote for our panel with @Bluecadet @lkmnd on creating offline community ..."},"friends_count":401,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1159898446\/lm_twitter_normal.gif","screen_name":"lkmnd","default_profile_image":false,"show_all_inline_media":false,"geo_enabled":true,"profile_background_tile":true,"location":"San Francisco, CA","notifications":false,"is_translator":false,"profile_link_color":"0084B4","url":"http:\/\/likeminded.org","id":209802925,"follow_request_sent":false,"statuses_count":128,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":332},"token":"23"},{"user":{"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","time_zone":null,"protected":false,"profile_use_background_image":true,"friends_count":133,"profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","name":"Jace","default_profile_image":true,"created_at":"Fri Jun 05 00:38:06 +0000 2009","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":null,"description":null,"is_translator":false,"verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","id_str":"44776072","follow_request_sent":false,"lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Jun 17 04:22:09 +0000 2009","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"2202180865","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/playspymaster.com\" rel=\"nofollow\"\u003ESpymaster\u003C\/a\u003E","id":2202180865,"text":"I just wounded @avianto in an assassination attempt. #spymaster http:\/\/bit.ly\/playspy"},"show_all_inline_media":false,"geo_enabled":false,"profile_sidebar_fill_color":"DDEEF6","screen_name":"SecretAgent00J","profile_background_tile":false,"location":null,"contributors_enabled":false,"notifications":false,"default_profile":true,"listed_count":2,"statuses_count":44,"profile_link_color":"0084B4","url":null,"id":44776072,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":80},"token":"14"},{"user":{"time_zone":"Central Time (US & Canada)","protected":false,"is_translator":false,"default_profile":true,"profile_use_background_image":true,"name":"Justa Spy","follow_request_sent":false,"statuses_count":34,"created_at":"Mon Jun 08 14:37:58 +0000 2009","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-21600,"description":"My alter-ego... Find the real me: @goneflyin","verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/sticky\/default_profile_images\/default_profile_4_normal.png","id_str":"45577830","contributors_enabled":false,"lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Jul 20 01:04:26 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"93486387462021121","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/shadowcities.com\/\" rel=\"nofollow\"\u003EShadow Cities\u003C\/a\u003E","id":93486387462021121,"text":"Join Me (AufFlaighin) in the Battle for Shadow Cities! http:\/\/bit.ly\/mVYnxv"},"listed_count":3,"profile_sidebar_fill_color":"DDEEF6","screen_name":"gonespyin","profile_background_tile":false,"location":"","notifications":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","friends_count":626,"profile_link_color":"0084B4","url":null,"profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_4_normal.png","id":45577830,"default_profile_image":true,"show_all_inline_media":false,"following":false,"geo_enabled":false,"profile_sidebar_border_color":"C0DEED","followers_count":364},"token":"14"},{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Darth Vader","contributors_enabled":false,"created_at":"Tue Jan 09 15:42:04 +0000 2007","profile_background_color":"4B4B4B","listed_count":12900,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/30752\/vader.gif","utc_offset":-18000,"description":"Evil Orphan Annie\u2122","verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/425092539\/vader_normal_normal.png","id_str":"618593","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/30752\/vader.gif","favourites_count":252,"profile_text_color":"8a8a8a","status":{"truncated":false,"created_at":"Thu Aug 18 14:02:38 +0000 2011","geo":null,"in_reply_to_user_id":641333,"in_reply_to_status_id":104190049779851264,"favorited":false,"in_reply_to_status_id_str":"104190049779851264","coordinates":null,"id_str":"104191476291997696","in_reply_to_screen_name":"davidcaolo","in_reply_to_user_id_str":"641333","place":null,"contributors":null,"retweeted":false,"retweet_count":1,"source":"\u003Ca href=\"http:\/\/twitterrific.com\" rel=\"nofollow\"\u003ETwitterrific for Mac\u003C\/a\u003E","id":104191476291997696,"text":"@davidcaolo If this is a consular ship, where is the ambassador?!"},"friends_count":6699,"profile_sidebar_fill_color":"000000","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/425092539\/vader_normal_normal.png","screen_name":"darthvader","default_profile_image":false,"default_profile":false,"show_all_inline_media":false,"geo_enabled":false,"profile_background_tile":true,"location":"Empire, CO","notifications":false,"is_translator":false,"profile_link_color":"AA1212","url":null,"id":618593,"follow_request_sent":false,"statuses_count":1454,"following":false,"profile_sidebar_border_color":"AA1212","followers_count":350892},"token":"22"},{"user":{"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/53292788\/twitter_bg2.png","time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"friends_count":254,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1497179992\/skitched-20110815-135946_normal.jpg","name":"Cliff Moon","default_profile_image":false,"created_at":"Mon Mar 24 01:05:35 +0000 2008","profile_background_color":"707070","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/53292788\/twitter_bg2.png","utc_offset":-28800,"description":"Not a real person.","is_translator":false,"show_all_inline_media":false,"verified":false,"geo_enabled":true,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1497179992\/skitched-20110815-135946_normal.jpg","id_str":"14204623","follow_request_sent":null,"lang":"en","favourites_count":320,"profile_text_color":"666666","status":{"truncated":false,"created_at":"Mon Aug 22 01:30:47 +0000 2011","geo":null,"in_reply_to_user_id":15387262,"in_reply_to_status_id":105451772604198912,"favorited":false,"in_reply_to_status_id_str":"105451772604198912","coordinates":null,"id_str":"105451820574457856","in_reply_to_screen_name":"ohlol","in_reply_to_user_id_str":"15387262","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":105451820574457856,"text":"@ohlol what is it?"},"profile_sidebar_fill_color":"000000","screen_name":"moonpolysoft","default_profile":false,"statuses_count":14100,"profile_background_tile":true,"location":"8========D~~~","contributors_enabled":false,"notifications":null,"listed_count":90,"profile_link_color":"66d6ff","url":"http:\/\/github.com\/cliffmoon","id":14204623,"following":null,"profile_sidebar_border_color":"bddcad","followers_count":1193},"token":"1"}]
1
+ [{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"default_profile":true,"profile_use_background_image":true,"name":"John Trupiano","contributors_enabled":false,"created_at":"Sun May 11 19:46:06 +0000 2008","profile_background_color":"C0DEED","listed_count":99,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-18000,"description":"Owner of @smartlogic. I tweet a mixed stream of incoherence and inside jokes. My tweets make me laugh; your mileage will vary.","verified":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","id_str":"14736332","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":117,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Sat Aug 20 03:27:22 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104756380472324096","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/#!\/download\/iphone\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","id":104756380472324096,"text":"Jimmy Johns: the best place to go right after getting pepper sprayed."},"friends_count":545,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","screen_name":"jtrupiano","default_profile_image":false,"show_all_inline_media":false,"geo_enabled":false,"profile_background_tile":false,"location":"Baltimore, MD","notifications":null,"is_translator":false,"profile_link_color":"0084B4","url":"http:\/\/smartlogicsolutions.com\/john","id":14736332,"follow_request_sent":null,"statuses_count":3850,"following":null,"profile_sidebar_border_color":"C0DEED","followers_count":802},"token":"1"},{"user":{"follow_request_sent":false,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Matt Laroche","created_at":"Sun Apr 20 12:05:38 +0000 2008","profile_background_color":"C6E2EE","show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme2\/bg.gif","utc_offset":-28800,"description":"Software engineer, beer advocate, Palo Altan, husband.","listed_count":20,"verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","id_str":"14451152","lang":"en","favourites_count":10,"profile_text_color":"663B12","status":{"truncated":false,"created_at":"Sun Aug 21 20:59:41 +0000 2011","geo":{"type":"Point","coordinates":[33.8043296,-117.9226607]},"in_reply_to_user_id":20113974,"in_reply_to_status_id":105382259623854081,"favorited":false,"in_reply_to_status_id_str":"105382259623854081","coordinates":{"type":"Point","coordinates":[-117.9226607,33.8043296]},"id_str":"105383592376537088","in_reply_to_screen_name":"chasesterling","in_reply_to_user_id_str":"20113974","place":{"country_code":"US","name":"Anaheim","attributes":{},"full_name":"Anaheim, CA","place_type":"city","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-118.017597,33.788835],[-117.674604,33.788835],[-117.674604,33.881456],[-118.017597,33.881456]]]},"id":"0c2e6999105f8070","url":"http:\/\/api.twitter.com\/1\/geo\/id\/0c2e6999105f8070.json"},"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003ETwitter for Android\u003C\/a\u003E","id":105383592376537088,"text":"@chasesterling sadly in a fake vending machine at the Monsters Inc ride at Disney's California Adventure."},"statuses_count":6251,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme2\/bg.gif","profile_sidebar_fill_color":"DAECF4","screen_name":"mlroach","profile_background_tile":false,"friends_count":403,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","location":"Palo Alto, California","default_profile_image":false,"notifications":false,"default_profile":false,"profile_link_color":"1F98C7","url":null,"id":14451152,"is_translator":false,"following":false,"profile_sidebar_border_color":"C6E2EE","followers_count":299},"token":"21"},{"user":{"follow_request_sent":false,"statuses_count":183,"time_zone":"Greenland","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","name":"AntonioPires","created_at":"Sat May 16 18:24:33 +0000 2009","profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","utc_offset":-10800,"description":"","listed_count":2,"contributors_enabled":false,"verified":false,"geo_enabled":true,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1067377349\/s_normal.jpg","id_str":"40514587","lang":"en","favourites_count":2,"profile_text_color":"828282","status":{"truncated":false,"created_at":"Mon Jun 13 16:27:31 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"80310340704931840","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"web","id":80310340704931840,"text":"Estou concorrendo a 1 ingresso do Alexandre Wollner no Rio \u2013 http:\/\/t.co\/QlJZUqF Siga @design_blog e @pensoeventos e d\u00ea RT!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"1c1c1c","screen_name":"antpires","profile_background_tile":false,"location":"Rio","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1067377349\/s_normal.jpg","friends_count":198,"profile_link_color":"e86f6f","url":"http:\/\/antpires.carbonmade.com","id":40514587,"is_translator":false,"default_profile":false,"following":false,"profile_sidebar_border_color":"000000","followers_count":158},"token":"14"},{"user":{"time_zone":"London","protected":false,"follow_request_sent":false,"profile_use_background_image":true,"name":"Alex MacCaw","created_at":"Fri Mar 23 12:36:14 +0000 2007","profile_background_color":"9ae4e8","contributors_enabled":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":0,"description":"Ruby\/JavaScript developer, O'Reilly author and entrepreneur. ","default_profile":false,"verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg","id_str":"2006261","listed_count":171,"lang":"en","favourites_count":9,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Sun Aug 21 23:54:01 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"105427467593981952","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/tweetbutton\" rel=\"nofollow\"\u003ETweet Button\u003C\/a\u003E","id":105427467593981952,"text":"Visualizing WebKit's hardware acceleration http:\/\/t.co\/nX5pvPl via @thomasfuchs"},"profile_sidebar_fill_color":"e0ff92","screen_name":"maccman","show_all_inline_media":false,"geo_enabled":true,"profile_background_tile":false,"location":"London","notifications":false,"is_translator":false,"default_profile_image":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_link_color":"0000ff","url":"http:\/\/alexmaccaw.co.uk","id":2006261,"statuses_count":4497,"following":false,"friends_count":967,"profile_sidebar_border_color":"87bc44","followers_count":2028,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg"},"token":"11"},{"user":{"follow_request_sent":false,"statuses_count":24,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","name":"stuntmann82","created_at":"Sat Aug 30 08:22:57 +0000 2008","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-28800,"description":"","listed_count":1,"contributors_enabled":false,"verified":false,"geo_enabled":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/249396146\/images_normal.jpg","id_str":"16052754","lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Nov 25 06:20:05 +0000 2009","geo":null,"in_reply_to_user_id":2889221,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"6042752864","in_reply_to_screen_name":"vitaminjeff","in_reply_to_user_id_str":"2889221","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\/\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":6042752864,"text":"@vitaminjeff Sup bro!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"DDEEF6","screen_name":"stuntmann82","profile_background_tile":false,"location":"","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/249396146\/images_normal.jpg","friends_count":5,"profile_link_color":"0084B4","url":null,"id":16052754,"is_translator":false,"default_profile":true,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":42},"token":"14"}]
@@ -0,0 +1 @@
1
+ [{"geo_enabled":true,"time_zone":"Pacific Time (US & Canada)","description":"Adventures in hunger and foolishness.","profile_sidebar_fill_color":"DDEEF6","followers_count":898,"verified":false,"notifications":false,"follow_request_sent":false,"profile_use_background_image":true,"profile_sidebar_border_color":"C0DEED","url":null,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","lang":"en","created_at":"Mon Jul 16 12:59:01 +0000 2007","profile_background_color":"000000","location":"San Francisco","listed_count":29,"profile_background_tile":false,"friends_count":88,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/323331048\/me_normal.jpg","statuses_count":2962,"profile_text_color":"333333","name":"Erik Michaels-Ober","show_all_inline_media":true,"following":true,"favourites_count":727,"screen_name":"sferik","id":7505382,"id_str":"7505382","contributors_enabled":false,"utc_offset":-28800,"profile_link_color":"0084B4"},{"geo_enabled":true,"time_zone":"Central Time (US & Canada)","description":"Christian husband and father. Dev Experience @ HP Cloud Services. Co-host of the @changelogshow. Mashup of design & development.","profile_sidebar_fill_color":"dddddd","followers_count":2767,"status":{"place":null,"retweet_count":null,"geo":null,"retweeted":false,"in_reply_to_status_id":28008649044,"source":"\u003Ca href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003ETweetie for Mac\u003C\/a\u003E","truncated":false,"in_reply_to_status_id_str":"28008649044","created_at":"Thu Oct 21 10:33:15 +0000 2010","in_reply_to_user_id":11502142,"favorited":false,"in_reply_to_user_id_str":"11502142","contributors":null,"coordinates":null,"in_reply_to_screen_name":"benfawkes","id":28014236998,"id_str":"28014236998","text":"@benfawkes Surely. Just email wynn at the changelog dot com."},"verified":false,"notifications":false,"follow_request_sent":false,"profile_use_background_image":true,"profile_sidebar_border_color":"cccccc","url":"http:\/\/wynnnetherland.com","profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/61741268\/twitter-small.png","lang":"en","created_at":"Sat Mar 08 16:34:22 +0000 2008","profile_background_color":"efefef","location":"Dallas, TX","listed_count":185,"profile_background_tile":false,"friends_count":1871,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/485575482\/komikazee_normal.png","statuses_count":3913,"profile_text_color":"666666","name":"Wynn Netherland","show_all_inline_media":false,"following":true,"favourites_count":32,"screen_name":"pengwynn","id":14100886,"id_str":"14100886","contributors_enabled":false,"utc_offset":-21600,"profile_link_color":"35abe9"}]
data/spec/helper.rb CHANGED
@@ -4,7 +4,6 @@ unless ENV['CI']
4
4
  end
5
5
 
6
6
  require 't'
7
- T.env = 'test'
8
7
  require 'rspec'
9
8
  require 'timecop'
10
9
  require 'webmock/rspec'
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require 'helper'
3
3
 
4
- describe T::CLI::List do
4
+ describe T::List do
5
5
 
6
6
  before do
7
7
  rcfile = RCFile.instance
@@ -20,6 +20,42 @@ describe T::CLI::List do
20
20
  $stdout = @old_stdout
21
21
  end
22
22
 
23
+ describe "#add" do
24
+ before do
25
+ @t.options = @t.options.merge(:profile => fixture_path + "/.trc")
26
+ stub_get("/1/account/verify_credentials.json").
27
+ to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
28
+ stub_post("/1/lists/members/create_all.json").
29
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
30
+ to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
31
+ end
32
+ it "should request the correct resource" do
33
+ @t.list("add", "presidents", "sferik")
34
+ a_get("/1/account/verify_credentials.json").
35
+ should have_been_made
36
+ a_post("/1/lists/members/create_all.json").
37
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
38
+ should have_been_made
39
+ end
40
+ it "should have the correct output" do
41
+ @t.list("add", "presidents", "sferik")
42
+ $stdout.string.should =~ /@testcli added 1 user to the list "presidents"\./
43
+ end
44
+ context "Twitter is down" do
45
+ it "should retry 3 times and then raise an error" do
46
+ stub_post("/1/lists/members/create_all.json").
47
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
48
+ to_return(:status => 502)
49
+ lambda do
50
+ @t.list("add", "presidents", "sferik")
51
+ end.should raise_error("Twitter is down or being upgraded.")
52
+ a_post("/1/lists/members/create_all.json").
53
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
54
+ should have_been_made.times(3)
55
+ end
56
+ end
57
+ end
58
+
23
59
  describe "#create" do
24
60
  before do
25
61
  @t.options = @t.options.merge(:profile => fixture_path + "/.trc")
@@ -39,20 +75,55 @@ describe T::CLI::List do
39
75
  end
40
76
  end
41
77
 
42
- describe "#timeline" do
78
+ describe "#remove" do
43
79
  before do
80
+ @t.options = @t.options.merge(:profile => fixture_path + "/.trc")
44
81
  stub_get("/1/account/verify_credentials.json").
45
82
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
83
+ end
84
+ it "should request the correct resource" do
85
+ stub_post("/1/lists/members/destroy_all.json").
86
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
87
+ to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
88
+ @t.list("remove", "presidents", "sferik")
89
+ a_get("/1/account/verify_credentials.json").
90
+ should have_been_made
91
+ a_post("/1/lists/members/destroy_all.json").
92
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
93
+ should have_been_made
94
+ end
95
+ it "should have the correct output" do
96
+ stub_post("/1/lists/members/destroy_all.json").
97
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
98
+ to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
99
+ @t.list("remove", "presidents", "sferik")
100
+ $stdout.string.should =~ /@testcli removed 1 user from the list "presidents"\./
101
+ end
102
+ context "Twitter is down" do
103
+ it "should retry 3 times and then raise an error" do
104
+ stub_post("/1/lists/members/destroy_all.json").
105
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
106
+ to_return(:status => 502)
107
+ lambda do
108
+ @t.list("remove", "presidents", "sferik")
109
+ end.should raise_error("Twitter is down or being upgraded.")
110
+ a_post("/1/lists/members/destroy_all.json").
111
+ with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
112
+ should have_been_made.times(3)
113
+ end
114
+ end
115
+ end
116
+
117
+ describe "#timeline" do
118
+ before do
46
119
  stub_get("/1/lists/statuses.json").
47
- with(:query => {:owner_screen_name => "sferik", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
120
+ with(:query => {:owner_screen_name => "testcli", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
48
121
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
49
122
  end
50
123
  it "should request the correct resource" do
51
124
  @t.list("timeline", "presidents")
52
- a_get("/1/account/verify_credentials.json").
53
- should have_been_made
54
125
  a_get("/1/lists/statuses.json").
55
- with(:query => {:owner_screen_name => "sferik", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
126
+ with(:query => {:owner_screen_name => "testcli", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
56
127
  should have_been_made
57
128
  end
58
129
  it "should have the correct output" do
data/spec/rcfile_spec.rb CHANGED
@@ -3,10 +3,6 @@ require 'helper'
3
3
 
4
4
  describe RCFile do
5
5
 
6
- before do
7
- RCFile.instance.reset
8
- end
9
-
10
6
  after do
11
7
  RCFile.instance.reset
12
8
  end
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require 'helper'
3
3
 
4
- describe T::CLI::Search do
4
+ describe T::Search do
5
5
 
6
6
  before do
7
7
  rcfile = RCFile.instance
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require 'helper'
3
3
 
4
- describe T::CLI::Set do
4
+ describe T::Set do
5
5
 
6
6
  before do
7
7
  rcfile = RCFile.instance