t 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,14 +4,18 @@ require 'helper'
4
4
  describe T::CLI::List do
5
5
 
6
6
  before do
7
+ rcfile = RCFile.instance
8
+ rcfile.path = fixture_path + "/.trc"
7
9
  @t = T::CLI.new
8
10
  @old_stderr = $stderr
9
11
  $stderr = StringIO.new
10
12
  @old_stdout = $stdout
11
13
  $stdout = StringIO.new
14
+ Timecop.freeze(Time.local(2011, 11, 24, 16, 20, 0))
12
15
  end
13
16
 
14
17
  after do
18
+ Timecop.return
15
19
  $stderr = @old_stderr
16
20
  $stdout = @old_stdout
17
21
  end
@@ -4,14 +4,18 @@ require 'helper'
4
4
  describe T::CLI::Search do
5
5
 
6
6
  before do
7
+ rcfile = RCFile.instance
8
+ rcfile.path = fixture_path + "/.trc"
7
9
  @t = T::CLI.new
8
10
  @old_stderr = $stderr
9
11
  $stderr = StringIO.new
10
12
  @old_stdout = $stdout
11
13
  $stdout = StringIO.new
14
+ Timecop.freeze(Time.local(2011, 11, 24, 16, 20, 0))
12
15
  end
13
16
 
14
17
  after do
18
+ Timecop.return
15
19
  $stderr = @old_stderr
16
20
  $stdout = @old_stdout
17
21
  end
@@ -50,6 +54,234 @@ describe T::CLI::Search do
50
54
  end
51
55
  end
52
56
 
57
+ describe "#favorites" do
58
+ it "should request the correct resource" do
59
+ 1.upto(16).each do |page|
60
+ stub_get("/1/favorites.json").
61
+ with(:query => {:count => "200", :page => "#{page}"}).
62
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
63
+ end
64
+ @t.search("favorites", "twitter")
65
+ 1.upto(16).each do |page|
66
+ a_get("/1/favorites.json").
67
+ with(:query => {:count => "200", :page => "#{page}"}).
68
+ should have_been_made
69
+ end
70
+ end
71
+ it "should have the correct output" do
72
+ 1.upto(16).each do |page|
73
+ stub_get("/1/favorites.json").
74
+ with(:query => {:count => "200", :page => "#{page}"}).
75
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
76
+ end
77
+ @t.search("favorites", "twitter")
78
+ $stdout.string.should == <<-eos.gsub(/^/, ' ' * 6)
79
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
80
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
81
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
82
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
83
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
84
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
85
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
86
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
87
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
88
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
89
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
90
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
91
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
92
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
93
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
94
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
95
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
96
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
97
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
98
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
99
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
100
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
101
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
102
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
103
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
104
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
105
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
106
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
107
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
108
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
109
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
110
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
111
+ eos
112
+ end
113
+ context "Twitter is down" do
114
+ it "should retry 3 times and then raise an error" do
115
+ 1.upto(15).each do |page|
116
+ stub_get("/1/favorites.json").
117
+ with(:query => {:count => "200", :page => "#{page}"}).
118
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
119
+ end
120
+ stub_get("/1/favorites.json").
121
+ with(:query => {:count => "200", :page => "16"}).
122
+ to_return(:status => 502)
123
+ lambda do
124
+ @t.search("favorites", "twitter")
125
+ end.should raise_error("Twitter is down or being upgraded.")
126
+ a_get("/1/favorites.json").
127
+ with(:query => {:count => "200", :page => "16"}).
128
+ should have_been_made.times(3)
129
+ end
130
+ end
131
+ end
132
+
133
+ describe "#mentions" do
134
+ it "should request the correct resource" do
135
+ 1.upto(16).each do |page|
136
+ stub_get("/1/statuses/mentions.json").
137
+ with(:query => {:count => "200", :page => "#{page}"}).
138
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
139
+ end
140
+ @t.search("mentions", "twitter")
141
+ 1.upto(16).each do |page|
142
+ a_get("/1/statuses/mentions.json").
143
+ with(:query => {:count => "200", :page => "#{page}"}).
144
+ should have_been_made
145
+ end
146
+ end
147
+ it "should have the correct output" do
148
+ 1.upto(16).each do |page|
149
+ stub_get("/1/statuses/mentions.json").
150
+ with(:query => {:count => "200", :page => "#{page}"}).
151
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
152
+ end
153
+ @t.search("mentions", "twitter")
154
+ $stdout.string.should == <<-eos.gsub(/^/, ' ' * 6)
155
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
156
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
157
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
158
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
159
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
160
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
161
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
162
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
163
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
164
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
165
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
166
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
167
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
168
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
169
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
170
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
171
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
172
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
173
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
174
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
175
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
176
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
177
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
178
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
179
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
180
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
181
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
182
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
183
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
184
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
185
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
186
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
187
+ eos
188
+ end
189
+ context "Twitter is down" do
190
+ it "should retry 3 times and then raise an error" do
191
+ 1.upto(15).each do |page|
192
+ stub_get("/1/statuses/mentions.json").
193
+ with(:query => {:count => "200", :page => "#{page}"}).
194
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
195
+ end
196
+ stub_get("/1/statuses/mentions.json").
197
+ with(:query => {:count => "200", :page => "16"}).
198
+ to_return(:status => 502)
199
+ lambda do
200
+ @t.search("mentions", "twitter")
201
+ end.should raise_error("Twitter is down or being upgraded.")
202
+ a_get("/1/statuses/mentions.json").
203
+ with(:query => {:count => "200", :page => "16"}).
204
+ should have_been_made.times(3)
205
+ end
206
+ end
207
+ end
208
+
209
+ describe "#retweets" do
210
+ it "should request the correct resource" do
211
+ 1.upto(16).each do |page|
212
+ stub_get("/1/statuses/retweeted_by_me.json").
213
+ with(:query => {:count => "200", :page => "#{page}"}).
214
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
215
+ end
216
+ @t.search("retweets", "twitter")
217
+ 1.upto(16).each do |page|
218
+ a_get("/1/statuses/retweeted_by_me.json").
219
+ with(:query => {:count => "200", :page => "#{page}"}).
220
+ should have_been_made
221
+ end
222
+ end
223
+ it "should have the correct output" do
224
+ 1.upto(16).each do |page|
225
+ stub_get("/1/statuses/retweeted_by_me.json").
226
+ with(:query => {:count => "200", :page => "#{page}"}).
227
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
228
+ end
229
+ @t.search("retweets", "twitter")
230
+ $stdout.string.should == <<-eos.gsub(/^/, ' ' * 6)
231
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
232
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
233
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
234
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
235
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
236
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
237
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
238
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
239
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
240
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
241
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
242
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
243
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
244
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
245
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
246
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
247
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
248
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
249
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
250
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
251
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
252
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
253
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
254
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
255
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
256
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
257
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
258
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
259
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
260
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
261
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
262
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
263
+ eos
264
+ end
265
+ context "Twitter is down" do
266
+ it "should retry 3 times and then raise an error" do
267
+ 1.upto(15).each do |page|
268
+ stub_get("/1/statuses/retweeted_by_me.json").
269
+ with(:query => {:count => "200", :page => "#{page}"}).
270
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
271
+ end
272
+ stub_get("/1/statuses/retweeted_by_me.json").
273
+ with(:query => {:count => "200", :page => "16"}).
274
+ to_return(:status => 502)
275
+ lambda do
276
+ @t.search("retweets", "twitter")
277
+ end.should raise_error("Twitter is down or being upgraded.")
278
+ a_get("/1/statuses/retweeted_by_me.json").
279
+ with(:query => {:count => "200", :page => "16"}).
280
+ should have_been_made.times(3)
281
+ end
282
+ end
283
+ end
284
+
53
285
  describe "#timeline" do
54
286
  it "should request the correct resource" do
55
287
  1.upto(16).each do |page|
@@ -4,8 +4,9 @@ require 'helper'
4
4
  describe T::CLI::Set do
5
5
 
6
6
  before do
7
+ rcfile = RCFile.instance
8
+ rcfile.path = fixture_path + "/.trc"
7
9
  @t = T::CLI.new
8
- Timecop.freeze(Time.local(2011, 11, 24, 16, 20, 0))
9
10
  @old_stderr = $stderr
10
11
  $stderr = StringIO.new
11
12
  @old_stdout = $stdout
@@ -4,6 +4,8 @@ require 'helper'
4
4
  describe T::CLI::Unfollow do
5
5
 
6
6
  before do
7
+ rcfile = RCFile.instance
8
+ rcfile.path = fixture_path + "/.trc"
7
9
  @t = T::CLI.new
8
10
  @old_stderr = $stderr
9
11
  $stderr = StringIO.new
@@ -4,15 +4,18 @@ require 'helper'
4
4
  describe T::CLI do
5
5
 
6
6
  before do
7
+ rcfile = RCFile.instance
8
+ rcfile.path = fixture_path + "/.trc"
7
9
  @t = T::CLI.new
8
- Timecop.freeze(Time.local(2011, 11, 24, 16, 20, 0))
9
10
  @old_stderr = $stderr
10
11
  $stderr = StringIO.new
11
12
  @old_stdout = $stdout
12
13
  $stdout = StringIO.new
14
+ Timecop.freeze(Time.local(2011, 11, 24, 16, 20, 0))
13
15
  end
14
16
 
15
17
  after do
18
+ Timecop.return
16
19
  $stderr = @old_stderr
17
20
  $stdout = @old_stdout
18
21
  end
@@ -389,6 +392,83 @@ describe T::CLI do
389
392
  end
390
393
  end
391
394
 
395
+ describe "#retweets" do
396
+ context "without arguments" do
397
+ before do
398
+ stub_get("/1/statuses/retweeted_by_me.json").
399
+ with(:query => {:include_entities => "false"}).
400
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
401
+ end
402
+ it "should request the correct resource" do
403
+ @t.retweets
404
+ a_get("/1/statuses/retweeted_by_me.json").
405
+ with(:query => {:include_entities => "false"}).
406
+ should have_been_made
407
+ end
408
+ it "should have the correct output" do
409
+ @t.retweets
410
+ $stdout.string.should == <<-eos.gsub(/^/, ' ' * 4)
411
+ sferik: Ruby is the best programming language for hiding the ugly bits. (about 1 year ago)
412
+ sferik: There are 1.3 billion people in China; when people say there are 1 billion they are rounding off the entire population of the United States. (about 1 year ago)
413
+ sferik: The new Windows Phone campaign is the best advertising from Microsoft since "Start Me Up" (1995). Great work by CP+B. http://t.co/tIzxopI (about 1 year ago)
414
+ sferik: Fear not to sow seeds because of the birds. http://twitpic.com/2wg621 (about 1 year ago)
415
+ sferik: Speaking of things that are maddening: the interview with the Wall Street guys on the most recent This American Life http://bit.ly/af9pSD (about 1 year ago)
416
+ sferik: Holy cow! RailsAdmin is up to 200 watchers (from 100 yesterday). http://github.com/sferik/rails_admin (about 1 year ago)
417
+ sferik: Kind of cool that Facebook acts as a mirror for open-source projects that they use or like http://mirror.facebook.net/ (about 1 year ago)
418
+ sferik: RailsAdmin already has 100 watchers, 12 forks, and 6 contributors in less than 2 months. Let's keep the momentum going! http://bit.ly/cCMMqD (about 1 year ago)
419
+ sferik: This week's This American Life is amazing. @JoeLipari is an American hero. http://bit.ly/d9RbnB (about 1 year ago)
420
+ sferik: RT @polyseme: OH: shofars should be called jewvuzelas. (about 1 year ago)
421
+ sferik: Spent this morning fixing broken windows in RailsAdmin http://github.com/sferik/rails_admin/compare/ab6c598...0e3770f (about 1 year ago)
422
+ sferik: I'm a big believer that the broken windows theory applies to software development http://en.wikipedia.org/wiki/Broken_windows_theory (about 1 year ago)
423
+ sferik: I hope you idiots are happy with your piece of shit Android phones. http://www.apple.com/pr/library/2010/09/09statement.html (about 1 year ago)
424
+ sferik: Ping: kills MySpace dead. (about 1 year ago)
425
+ sferik: Crazy that iTunes Ping didn't leak a drop. (about 1 year ago)
426
+ sferik: The plot thickens http://twitpic.com/2k5lt2 (about 1 year ago)
427
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
428
+ sferik: Try as you may http://www.thedoghousediaries.com/?p=1940 (about 1 year ago)
429
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
430
+ eos
431
+ end
432
+ end
433
+ context "with a screen name passed" do
434
+ before do
435
+ stub_get("/1/statuses/retweeted_by_user.json").
436
+ with(:query => {:screen_name => "sferik", :include_entities => "false"}).
437
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
438
+ end
439
+ it "should request the correct resource" do
440
+ @t.retweets("sferik")
441
+ a_get("/1/statuses/retweeted_by_user.json").
442
+ with(:query => {:screen_name => "sferik", :include_entities => "false"}).
443
+ should have_been_made
444
+ end
445
+ it "should have the correct output" do
446
+ @t.retweets("sferik")
447
+ $stdout.string.should == <<-eos.gsub(/^/, ' ' * 4)
448
+ sferik: Ruby is the best programming language for hiding the ugly bits. (about 1 year ago)
449
+ sferik: There are 1.3 billion people in China; when people say there are 1 billion they are rounding off the entire population of the United States. (about 1 year ago)
450
+ sferik: The new Windows Phone campaign is the best advertising from Microsoft since "Start Me Up" (1995). Great work by CP+B. http://t.co/tIzxopI (about 1 year ago)
451
+ sferik: Fear not to sow seeds because of the birds. http://twitpic.com/2wg621 (about 1 year ago)
452
+ sferik: Speaking of things that are maddening: the interview with the Wall Street guys on the most recent This American Life http://bit.ly/af9pSD (about 1 year ago)
453
+ sferik: Holy cow! RailsAdmin is up to 200 watchers (from 100 yesterday). http://github.com/sferik/rails_admin (about 1 year ago)
454
+ sferik: Kind of cool that Facebook acts as a mirror for open-source projects that they use or like http://mirror.facebook.net/ (about 1 year ago)
455
+ sferik: RailsAdmin already has 100 watchers, 12 forks, and 6 contributors in less than 2 months. Let's keep the momentum going! http://bit.ly/cCMMqD (about 1 year ago)
456
+ sferik: This week's This American Life is amazing. @JoeLipari is an American hero. http://bit.ly/d9RbnB (about 1 year ago)
457
+ sferik: RT @polyseme: OH: shofars should be called jewvuzelas. (about 1 year ago)
458
+ sferik: Spent this morning fixing broken windows in RailsAdmin http://github.com/sferik/rails_admin/compare/ab6c598...0e3770f (about 1 year ago)
459
+ sferik: I'm a big believer that the broken windows theory applies to software development http://en.wikipedia.org/wiki/Broken_windows_theory (about 1 year ago)
460
+ sferik: I hope you idiots are happy with your piece of shit Android phones. http://www.apple.com/pr/library/2010/09/09statement.html (about 1 year ago)
461
+ sferik: Ping: kills MySpace dead. (about 1 year ago)
462
+ sferik: Crazy that iTunes Ping didn't leak a drop. (about 1 year ago)
463
+ sferik: The plot thickens http://twitpic.com/2k5lt2 (about 1 year ago)
464
+ sferik: 140 Proof Provides A Piece Of The Twitter Advertising Puzzle http://t.co/R2cUSDe via @techcrunch (about 1 year ago)
465
+ sferik: Try as you may http://www.thedoghousediaries.com/?p=1940 (about 1 year ago)
466
+ sferik: I know @SarahPalinUSA has a right to use Twitter, but should she? (over 1 year ago)
467
+ eos
468
+ end
469
+ end
470
+ end
471
+
392
472
  describe "#sent_messages" do
393
473
  before do
394
474
  stub_get("/1/direct_messages/sent.json").
@@ -1,5 +1,8 @@
1
- require 'simplecov'
2
- SimpleCov.start
1
+ unless ENV['CI']
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+ end
5
+
3
6
  require 't'
4
7
  T.env = 'test'
5
8
  require 'rspec'
data/t.gemspec CHANGED
@@ -7,11 +7,11 @@ Gem::Specification.new do |gem|
7
7
  gem.add_dependency 'launchy', '~> 2.0'
8
8
  gem.add_dependency 'geokit', '~> 1.6'
9
9
  gem.add_dependency 'oauth', '~> 0.4'
10
+ gem.add_dependency 'oj', '~> 1.2'
10
11
  gem.add_dependency 'pager', '~> 1.0'
11
12
  gem.add_dependency 'retryable', '~> 1.2'
12
13
  gem.add_dependency 'thor', '~> 0.15.0.rc2'
13
- gem.add_dependency 'twitter', '~> 2.1'
14
- gem.add_dependency 'yajl-ruby', '~> 1.1'
14
+ gem.add_dependency 'twitter', '~> 2.2'
15
15
  gem.add_development_dependency 'pry'
16
16
  gem.add_development_dependency 'rake'
17
17
  gem.add_development_dependency 'rspec'
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.add_development_dependency 'webmock'
21
21
  gem.author = "Erik Michaels-Ober"
22
22
  gem.bindir = 'bin'
23
- gem.description = %q{A command-line interface for Twitter.}
23
+ gem.description = %q{A command-line power tool for Twitter.}
24
24
  gem.email = 'sferik@gmail.com'
25
25
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
26
  gem.files = `git ls-files`.split("\n")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: t
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-28 00:00:00.000000000Z
12
+ date: 2012-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
16
- requirement: &70134698842180 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -24,10 +24,18 @@ dependencies:
24
24
  version: '4'
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *70134698842180
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.3.11
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: '4'
28
36
  - !ruby/object:Gem::Dependency
29
37
  name: activesupport
30
- requirement: &70134698841380 !ruby/object:Gem::Requirement
38
+ requirement: !ruby/object:Gem::Requirement
31
39
  none: false
32
40
  requirements:
33
41
  - - ! '>='
@@ -38,10 +46,18 @@ dependencies:
38
46
  version: '4'
39
47
  type: :runtime
40
48
  prerelease: false
41
- version_requirements: *70134698841380
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.3.11
55
+ - - <
56
+ - !ruby/object:Gem::Version
57
+ version: '4'
42
58
  - !ruby/object:Gem::Dependency
43
59
  name: launchy
44
- requirement: &70134698840660 !ruby/object:Gem::Requirement
60
+ requirement: !ruby/object:Gem::Requirement
45
61
  none: false
46
62
  requirements:
47
63
  - - ~>
@@ -49,10 +65,15 @@ dependencies:
49
65
  version: '2.0'
50
66
  type: :runtime
51
67
  prerelease: false
52
- version_requirements: *70134698840660
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ version: '2.0'
53
74
  - !ruby/object:Gem::Dependency
54
75
  name: geokit
55
- requirement: &70134698840200 !ruby/object:Gem::Requirement
76
+ requirement: !ruby/object:Gem::Requirement
56
77
  none: false
57
78
  requirements:
58
79
  - - ~>
@@ -60,10 +81,15 @@ dependencies:
60
81
  version: '1.6'
61
82
  type: :runtime
62
83
  prerelease: false
63
- version_requirements: *70134698840200
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '1.6'
64
90
  - !ruby/object:Gem::Dependency
65
91
  name: oauth
66
- requirement: &70134698858160 !ruby/object:Gem::Requirement
92
+ requirement: !ruby/object:Gem::Requirement
67
93
  none: false
68
94
  requirements:
69
95
  - - ~>
@@ -71,10 +97,31 @@ dependencies:
71
97
  version: '0.4'
72
98
  type: :runtime
73
99
  prerelease: false
74
- version_requirements: *70134698858160
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ~>
104
+ - !ruby/object:Gem::Version
105
+ version: '0.4'
106
+ - !ruby/object:Gem::Dependency
107
+ name: oj
108
+ requirement: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ~>
112
+ - !ruby/object:Gem::Version
113
+ version: '1.2'
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ~>
120
+ - !ruby/object:Gem::Version
121
+ version: '1.2'
75
122
  - !ruby/object:Gem::Dependency
76
123
  name: pager
77
- requirement: &70134698857700 !ruby/object:Gem::Requirement
124
+ requirement: !ruby/object:Gem::Requirement
78
125
  none: false
79
126
  requirements:
80
127
  - - ~>
@@ -82,10 +129,15 @@ dependencies:
82
129
  version: '1.0'
83
130
  type: :runtime
84
131
  prerelease: false
85
- version_requirements: *70134698857700
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ version: '1.0'
86
138
  - !ruby/object:Gem::Dependency
87
139
  name: retryable
88
- requirement: &70134698857240 !ruby/object:Gem::Requirement
140
+ requirement: !ruby/object:Gem::Requirement
89
141
  none: false
90
142
  requirements:
91
143
  - - ~>
@@ -93,10 +145,15 @@ dependencies:
93
145
  version: '1.2'
94
146
  type: :runtime
95
147
  prerelease: false
96
- version_requirements: *70134698857240
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ~>
152
+ - !ruby/object:Gem::Version
153
+ version: '1.2'
97
154
  - !ruby/object:Gem::Dependency
98
155
  name: thor
99
- requirement: &70134698856780 !ruby/object:Gem::Requirement
156
+ requirement: !ruby/object:Gem::Requirement
100
157
  none: false
101
158
  requirements:
102
159
  - - ~>
@@ -104,32 +161,31 @@ dependencies:
104
161
  version: 0.15.0.rc2
105
162
  type: :runtime
106
163
  prerelease: false
107
- version_requirements: *70134698856780
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - ~>
168
+ - !ruby/object:Gem::Version
169
+ version: 0.15.0.rc2
108
170
  - !ruby/object:Gem::Dependency
109
171
  name: twitter
110
- requirement: &70134698856320 !ruby/object:Gem::Requirement
172
+ requirement: !ruby/object:Gem::Requirement
111
173
  none: false
112
174
  requirements:
113
175
  - - ~>
114
176
  - !ruby/object:Gem::Version
115
- version: '2.1'
177
+ version: '2.2'
116
178
  type: :runtime
117
179
  prerelease: false
118
- version_requirements: *70134698856320
119
- - !ruby/object:Gem::Dependency
120
- name: yajl-ruby
121
- requirement: &70134698855860 !ruby/object:Gem::Requirement
180
+ version_requirements: !ruby/object:Gem::Requirement
122
181
  none: false
123
182
  requirements:
124
183
  - - ~>
125
184
  - !ruby/object:Gem::Version
126
- version: '1.1'
127
- type: :runtime
128
- prerelease: false
129
- version_requirements: *70134698855860
185
+ version: '2.2'
130
186
  - !ruby/object:Gem::Dependency
131
187
  name: pry
132
- requirement: &70134698855480 !ruby/object:Gem::Requirement
188
+ requirement: !ruby/object:Gem::Requirement
133
189
  none: false
134
190
  requirements:
135
191
  - - ! '>='
@@ -137,10 +193,15 @@ dependencies:
137
193
  version: '0'
138
194
  type: :development
139
195
  prerelease: false
140
- version_requirements: *70134698855480
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ none: false
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
141
202
  - !ruby/object:Gem::Dependency
142
203
  name: rake
143
- requirement: &70134698855020 !ruby/object:Gem::Requirement
204
+ requirement: !ruby/object:Gem::Requirement
144
205
  none: false
145
206
  requirements:
146
207
  - - ! '>='
@@ -148,10 +209,15 @@ dependencies:
148
209
  version: '0'
149
210
  type: :development
150
211
  prerelease: false
151
- version_requirements: *70134698855020
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ none: false
214
+ requirements:
215
+ - - ! '>='
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
152
218
  - !ruby/object:Gem::Dependency
153
219
  name: rspec
154
- requirement: &70134698854600 !ruby/object:Gem::Requirement
220
+ requirement: !ruby/object:Gem::Requirement
155
221
  none: false
156
222
  requirements:
157
223
  - - ! '>='
@@ -159,10 +225,15 @@ dependencies:
159
225
  version: '0'
160
226
  type: :development
161
227
  prerelease: false
162
- version_requirements: *70134698854600
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
163
234
  - !ruby/object:Gem::Dependency
164
235
  name: simplecov
165
- requirement: &70134698854180 !ruby/object:Gem::Requirement
236
+ requirement: !ruby/object:Gem::Requirement
166
237
  none: false
167
238
  requirements:
168
239
  - - ! '>='
@@ -170,10 +241,15 @@ dependencies:
170
241
  version: '0'
171
242
  type: :development
172
243
  prerelease: false
173
- version_requirements: *70134698854180
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ none: false
246
+ requirements:
247
+ - - ! '>='
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
174
250
  - !ruby/object:Gem::Dependency
175
251
  name: timecop
176
- requirement: &70134698853760 !ruby/object:Gem::Requirement
252
+ requirement: !ruby/object:Gem::Requirement
177
253
  none: false
178
254
  requirements:
179
255
  - - ! '>='
@@ -181,10 +257,15 @@ dependencies:
181
257
  version: '0'
182
258
  type: :development
183
259
  prerelease: false
184
- version_requirements: *70134698853760
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ none: false
262
+ requirements:
263
+ - - ! '>='
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
185
266
  - !ruby/object:Gem::Dependency
186
267
  name: webmock
187
- requirement: &70134698853340 !ruby/object:Gem::Requirement
268
+ requirement: !ruby/object:Gem::Requirement
188
269
  none: false
189
270
  requirements:
190
271
  - - ! '>='
@@ -192,8 +273,13 @@ dependencies:
192
273
  version: '0'
193
274
  type: :development
194
275
  prerelease: false
195
- version_requirements: *70134698853340
196
- description: A command-line interface for Twitter.
276
+ version_requirements: !ruby/object:Gem::Requirement
277
+ none: false
278
+ requirements:
279
+ - - ! '>='
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ description: A command-line power tool for Twitter.
197
283
  email: sferik@gmail.com
198
284
  executables:
199
285
  - t
@@ -222,6 +308,7 @@ files:
222
308
  - lib/t/core_ext/enumerable.rb
223
309
  - lib/t/core_ext/string.rb
224
310
  - lib/t/rcfile.rb
311
+ - lib/t/requestable.rb
225
312
  - lib/t/version.rb
226
313
  - spec/cli/delete_spec.rb
227
314
  - spec/cli/follow_spec.rb
@@ -278,7 +365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
365
  version: 1.3.6
279
366
  requirements: []
280
367
  rubyforge_project:
281
- rubygems_version: 1.8.15
368
+ rubygems_version: 1.8.21
282
369
  signing_key:
283
370
  specification_version: 3
284
371
  summary: CLI for Twitter