t 0.6.4 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +19 -6
- data/lib/t/cli.rb +489 -191
- data/lib/t/core_ext/string.rb +4 -0
- data/lib/t/delete.rb +38 -23
- data/lib/t/list.rb +117 -46
- data/lib/t/printable.rb +56 -5
- data/lib/t/search.rb +35 -10
- data/lib/t/version.rb +2 -2
- data/spec/cli_spec.rb +1302 -163
- data/spec/delete_spec.rb +143 -125
- data/spec/fixtures/false.json +1 -0
- data/spec/fixtures/list.json +1 -1
- data/spec/fixtures/lists.json +1 -0
- data/spec/fixtures/locations.json +1 -0
- data/spec/fixtures/not_found.json +1 -0
- data/spec/fixtures/trends.json +1 -0
- data/spec/fixtures/true.json +1 -0
- data/spec/helper.rb +4 -0
- data/spec/list_spec.rb +204 -66
- data/spec/rcfile_spec.rb +7 -7
- data/spec/search_spec.rb +189 -6
- data/t.gemspec +3 -1
- metadata +48 -4
data/spec/delete_spec.rb
CHANGED
@@ -35,63 +35,72 @@ describe T::Delete do
|
|
35
35
|
@delete.block("sferik")
|
36
36
|
$stdout.string.should =~ /^@testcli unblocked 1 user\.$/
|
37
37
|
end
|
38
|
+
context "--id" do
|
39
|
+
before do
|
40
|
+
@delete.options = @delete.options.merge(:id => true)
|
41
|
+
stub_delete("/1/blocks/destroy.json").
|
42
|
+
with(:query => {:user_id => "7505382", :include_entities => "false"}).
|
43
|
+
to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
44
|
+
end
|
45
|
+
it "should request the correct resource" do
|
46
|
+
@delete.block("7505382")
|
47
|
+
a_delete("/1/blocks/destroy.json").
|
48
|
+
with(:query => {:user_id => "7505382", :include_entities => "false"}).
|
49
|
+
should have_been_made
|
50
|
+
end
|
51
|
+
end
|
38
52
|
end
|
39
53
|
|
40
54
|
describe "#dm" do
|
41
55
|
before do
|
42
56
|
@delete.options = @delete.options.merge(:profile => fixture_path + "/.trc")
|
57
|
+
stub_get("/1/direct_messages/show/1773478249.json").
|
58
|
+
with(:query => {:include_entities => "false"}).
|
59
|
+
to_return(:body => fixture("direct_message.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
43
60
|
stub_delete("/1/direct_messages/destroy/1773478249.json").
|
44
61
|
with(:query => {:include_entities => "false"}).
|
45
62
|
to_return(:body => fixture("direct_message.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
46
63
|
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
64
|
+
it "should request the correct resource" do
|
65
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @pengwynn: \"Creating a fixture for the Twitter gem\"? [y/N] ")
|
66
|
+
$stdin.should_receive(:gets).and_return("yes")
|
67
|
+
@delete.dm("1773478249")
|
68
|
+
a_get("/1/direct_messages/show/1773478249.json").
|
69
|
+
with(:query => {:include_entities => "false"}).
|
70
|
+
should have_been_made
|
71
|
+
a_delete("/1/direct_messages/destroy/1773478249.json").
|
72
|
+
with(:query => {:include_entities => "false"}).
|
73
|
+
should have_been_made
|
74
|
+
end
|
75
|
+
context "yes" do
|
76
|
+
it "should have the correct output" do
|
77
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @pengwynn: \"Creating a fixture for the Twitter gem\"? [y/N] ")
|
78
|
+
$stdin.should_receive(:gets).and_return("yes")
|
52
79
|
@delete.dm("1773478249")
|
53
|
-
|
54
|
-
with(:query => {:include_entities => "false"}).
|
55
|
-
should have_been_made
|
80
|
+
$stdout.string.chomp.should == "@testcli deleted the direct message sent to @pengwynn: \"Creating a fixture for the Twitter gem\""
|
56
81
|
end
|
82
|
+
end
|
83
|
+
context "no" do
|
57
84
|
it "should have the correct output" do
|
85
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @pengwynn: \"Creating a fixture for the Twitter gem\"? [y/N] ")
|
86
|
+
$stdin.should_receive(:gets).and_return("no")
|
58
87
|
@delete.dm("1773478249")
|
59
|
-
$stdout.string.chomp.should
|
88
|
+
$stdout.string.chomp.should be_empty
|
60
89
|
end
|
61
90
|
end
|
62
|
-
context "
|
91
|
+
context "--force" do
|
63
92
|
before do
|
64
|
-
@delete.options = @delete.options.merge(:force =>
|
65
|
-
stub_get("/1/direct_messages/show/1773478249.json").
|
66
|
-
with(:query => {:include_entities => "false"}).
|
67
|
-
to_return(:body => fixture("direct_message.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
93
|
+
@delete.options = @delete.options.merge(:force => true)
|
68
94
|
end
|
69
95
|
it "should request the correct resource" do
|
70
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @pengwynn: \"Creating a fixture for the Twitter gem\"? [y/N] ")
|
71
|
-
$stdin.should_receive(:gets).and_return("yes")
|
72
96
|
@delete.dm("1773478249")
|
73
|
-
a_get("/1/direct_messages/show/1773478249.json").
|
74
|
-
with(:query => {:include_entities => "false"}).
|
75
|
-
should have_been_made
|
76
97
|
a_delete("/1/direct_messages/destroy/1773478249.json").
|
77
98
|
with(:query => {:include_entities => "false"}).
|
78
99
|
should have_been_made
|
79
100
|
end
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
$stdin.should_receive(:gets).and_return("yes")
|
84
|
-
@delete.dm("1773478249")
|
85
|
-
$stdout.string.chomp.should == "@testcli deleted the direct message sent to @pengwynn: \"Creating a fixture for the Twitter gem\""
|
86
|
-
end
|
87
|
-
end
|
88
|
-
context "no" do
|
89
|
-
it "should have the correct output" do
|
90
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @pengwynn: \"Creating a fixture for the Twitter gem\"? [y/N] ")
|
91
|
-
$stdin.should_receive(:gets).and_return("no")
|
92
|
-
@delete.dm("1773478249")
|
93
|
-
$stdout.string.chomp.should be_empty
|
94
|
-
end
|
101
|
+
it "should have the correct output" do
|
102
|
+
@delete.dm("1773478249")
|
103
|
+
$stdout.string.chomp.should == "@testcli deleted the direct message sent to @pengwynn: \"Creating a fixture for the Twitter gem\""
|
95
104
|
end
|
96
105
|
end
|
97
106
|
end
|
@@ -99,58 +108,53 @@ describe T::Delete do
|
|
99
108
|
describe "#favorite" do
|
100
109
|
before do
|
101
110
|
@delete.options = @delete.options.merge(:profile => fixture_path + "/.trc")
|
111
|
+
stub_get("/1/statuses/show/28439861609.json").
|
112
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
113
|
+
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
102
114
|
stub_delete("/1/favorites/destroy/28439861609.json").
|
103
115
|
with(:query => {:include_entities => "false"}).
|
104
116
|
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
105
117
|
end
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
118
|
+
it "should request the correct resource" do
|
119
|
+
$stdout.should_receive(:print).with("Are you sure you want to remove @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\" from your favorites? [y/N] ")
|
120
|
+
$stdin.should_receive(:gets).and_return("yes")
|
121
|
+
@delete.favorite("28439861609")
|
122
|
+
a_get("/1/statuses/show/28439861609.json").
|
123
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
124
|
+
should have_been_made
|
125
|
+
a_delete("/1/favorites/destroy/28439861609.json").
|
126
|
+
with(:query => {:include_entities => "false"}).
|
127
|
+
should have_been_made
|
128
|
+
end
|
129
|
+
context "yes" do
|
130
|
+
it "should have the correct output" do
|
131
|
+
$stdout.should_receive(:print).with("Are you sure you want to remove @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\" from your favorites? [y/N] ")
|
132
|
+
$stdin.should_receive(:gets).and_return("yes")
|
111
133
|
@delete.favorite("28439861609")
|
112
|
-
|
113
|
-
with(:query => {:include_entities => "false"}).
|
114
|
-
should have_been_made
|
134
|
+
$stdout.string.should =~ /^@testcli unfavorited @sferik's status: "The problem with your code is that it's doing exactly what you told it to do\."$/
|
115
135
|
end
|
136
|
+
end
|
137
|
+
context "no" do
|
116
138
|
it "should have the correct output" do
|
139
|
+
$stdout.should_receive(:print).with("Are you sure you want to remove @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\" from your favorites? [y/N] ")
|
140
|
+
$stdin.should_receive(:gets).and_return("no")
|
117
141
|
@delete.favorite("28439861609")
|
118
|
-
$stdout.string.should
|
142
|
+
$stdout.string.chomp.should be_empty
|
119
143
|
end
|
120
144
|
end
|
121
|
-
context "
|
145
|
+
context "--force" do
|
122
146
|
before do
|
123
|
-
@delete.options = @delete.options.merge(:force =>
|
124
|
-
stub_get("/1/statuses/show/28439861609.json").
|
125
|
-
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
126
|
-
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
147
|
+
@delete.options = @delete.options.merge(:force => true)
|
127
148
|
end
|
128
149
|
it "should request the correct resource" do
|
129
|
-
$stdout.should_receive(:print).with("Are you sure you want to remove @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\" from your favorites? [y/N] ")
|
130
|
-
$stdin.should_receive(:gets).and_return("yes")
|
131
150
|
@delete.favorite("28439861609")
|
132
|
-
a_get("/1/statuses/show/28439861609.json").
|
133
|
-
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
134
|
-
should have_been_made
|
135
151
|
a_delete("/1/favorites/destroy/28439861609.json").
|
136
152
|
with(:query => {:include_entities => "false"}).
|
137
153
|
should have_been_made
|
138
154
|
end
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
$stdin.should_receive(:gets).and_return("yes")
|
143
|
-
@delete.favorite("28439861609")
|
144
|
-
$stdout.string.should =~ /^@testcli unfavorited @sferik's status: "The problem with your code is that it's doing exactly what you told it to do\."$/
|
145
|
-
end
|
146
|
-
end
|
147
|
-
context "no" do
|
148
|
-
it "should have the correct output" do
|
149
|
-
$stdout.should_receive(:print).with("Are you sure you want to remove @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\" from your favorites? [y/N] ")
|
150
|
-
$stdin.should_receive(:gets).and_return("no")
|
151
|
-
@delete.favorite("28439861609")
|
152
|
-
$stdout.string.chomp.should be_empty
|
153
|
-
end
|
155
|
+
it "should have the correct output" do
|
156
|
+
@delete.favorite("28439861609")
|
157
|
+
$stdout.string.should =~ /^@testcli unfavorited @sferik's status: "The problem with your code is that it's doing exactly what you told it to do\."$/
|
154
158
|
end
|
155
159
|
end
|
156
160
|
end
|
@@ -160,11 +164,40 @@ describe T::Delete do
|
|
160
164
|
@delete.options = @delete.options.merge(:profile => fixture_path + "/.trc")
|
161
165
|
stub_get("/1/account/verify_credentials.json").
|
162
166
|
to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
167
|
+
stub_get("/1/lists/show.json").
|
168
|
+
with(:query => {:owner_screen_name => "sferik", :slug => 'presidents'}).
|
169
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
163
170
|
stub_delete("/1/lists/destroy.json").
|
164
|
-
with(:query => {:owner_screen_name => "sferik", :
|
171
|
+
with(:query => {:owner_screen_name => "sferik", :list_id => "8863586"}).
|
165
172
|
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
166
173
|
end
|
167
|
-
|
174
|
+
it "should request the correct resource" do
|
175
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
176
|
+
$stdin.should_receive(:gets).and_return("yes")
|
177
|
+
@delete.list("presidents")
|
178
|
+
a_get("/1/account/verify_credentials.json").
|
179
|
+
should have_been_made
|
180
|
+
a_delete("/1/lists/destroy.json").
|
181
|
+
with(:query => {:owner_screen_name => "sferik", :list_id => "8863586"}).
|
182
|
+
should have_been_made
|
183
|
+
end
|
184
|
+
context "yes" do
|
185
|
+
it "should have the correct output" do
|
186
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
187
|
+
$stdin.should_receive(:gets).and_return("yes")
|
188
|
+
@delete.list("presidents")
|
189
|
+
$stdout.string.chomp.should == "@testcli deleted the list \"presidents\"."
|
190
|
+
end
|
191
|
+
end
|
192
|
+
context "no" do
|
193
|
+
it "should have the correct output" do
|
194
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
195
|
+
$stdin.should_receive(:gets).and_return("no")
|
196
|
+
@delete.list("presidents")
|
197
|
+
$stdout.string.chomp.should be_empty
|
198
|
+
end
|
199
|
+
end
|
200
|
+
context "--force" do
|
168
201
|
before do
|
169
202
|
@delete.options = @delete.options.merge(:force => true)
|
170
203
|
end
|
@@ -173,7 +206,7 @@ describe T::Delete do
|
|
173
206
|
a_get("/1/account/verify_credentials.json").
|
174
207
|
should have_been_made
|
175
208
|
a_delete("/1/lists/destroy.json").
|
176
|
-
with(:query => {:owner_screen_name => "sferik", :
|
209
|
+
with(:query => {:owner_screen_name => "sferik", :list_id => "8863586"}).
|
177
210
|
should have_been_made
|
178
211
|
end
|
179
212
|
it "should have the correct output" do
|
@@ -181,94 +214,79 @@ describe T::Delete do
|
|
181
214
|
$stdout.string.chomp.should == "@testcli deleted the list \"presidents\"."
|
182
215
|
end
|
183
216
|
end
|
184
|
-
context "
|
217
|
+
context "--id" do
|
185
218
|
before do
|
186
|
-
@delete.options = @delete.options.merge(:
|
219
|
+
@delete.options = @delete.options.merge(:id => true)
|
220
|
+
stub_get("/1/lists/show.json").
|
221
|
+
with(:query => {:owner_screen_name => "sferik", :list_id => "8863586"}).
|
222
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
187
223
|
end
|
188
224
|
it "should request the correct resource" do
|
189
225
|
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
190
226
|
$stdin.should_receive(:gets).and_return("yes")
|
191
|
-
@delete.list("
|
227
|
+
@delete.list("8863586")
|
228
|
+
a_get("/1/lists/show.json").
|
229
|
+
with(:query => {:owner_screen_name => "sferik", :list_id => "8863586"}).
|
230
|
+
should have_been_made
|
192
231
|
a_get("/1/account/verify_credentials.json").
|
193
232
|
should have_been_made
|
194
233
|
a_delete("/1/lists/destroy.json").
|
195
|
-
with(:query => {:owner_screen_name => "sferik", :
|
234
|
+
with(:query => {:owner_screen_name => "sferik", :list_id => "8863586"}).
|
196
235
|
should have_been_made
|
197
236
|
end
|
198
|
-
context "yes" do
|
199
|
-
it "should have the correct output" do
|
200
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
201
|
-
$stdin.should_receive(:gets).and_return("yes")
|
202
|
-
@delete.list("presidents")
|
203
|
-
$stdout.string.chomp.should == "@testcli deleted the list \"presidents\"."
|
204
|
-
end
|
205
|
-
end
|
206
|
-
context "no" do
|
207
|
-
it "should have the correct output" do
|
208
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
209
|
-
$stdin.should_receive(:gets).and_return("no")
|
210
|
-
@delete.list("presidents")
|
211
|
-
$stdout.string.chomp.should be_empty
|
212
|
-
end
|
213
|
-
end
|
214
237
|
end
|
215
238
|
end
|
216
239
|
|
217
240
|
describe "#status" do
|
218
241
|
before do
|
219
242
|
@delete.options = @delete.options.merge(:profile => fixture_path + "/.trc")
|
243
|
+
stub_get("/1/statuses/show/26755176471724032.json").
|
244
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
245
|
+
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
220
246
|
stub_delete("/1/statuses/destroy/26755176471724032.json").
|
221
247
|
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
222
248
|
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
223
249
|
end
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
250
|
+
it "should request the correct resource" do
|
251
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\"? [y/N] ")
|
252
|
+
$stdin.should_receive(:gets).and_return("yes")
|
253
|
+
@delete.status("26755176471724032")
|
254
|
+
a_get("/1/statuses/show/26755176471724032.json").
|
255
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
256
|
+
should have_been_made
|
257
|
+
a_delete("/1/statuses/destroy/26755176471724032.json").
|
258
|
+
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
259
|
+
should have_been_made
|
260
|
+
end
|
261
|
+
context "yes" do
|
262
|
+
it "should have the correct output" do
|
263
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\"? [y/N] ")
|
264
|
+
$stdin.should_receive(:gets).and_return("yes")
|
229
265
|
@delete.status("26755176471724032")
|
230
|
-
|
231
|
-
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
232
|
-
should have_been_made
|
266
|
+
$stdout.string.chomp.should == "@testcli deleted the status: \"The problem with your code is that it's doing exactly what you told it to do.\""
|
233
267
|
end
|
268
|
+
end
|
269
|
+
context "no" do
|
234
270
|
it "should have the correct output" do
|
271
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\"? [y/N] ")
|
272
|
+
$stdin.should_receive(:gets).and_return("no")
|
235
273
|
@delete.status("26755176471724032")
|
236
|
-
$stdout.string.chomp.should
|
274
|
+
$stdout.string.chomp.should be_empty
|
237
275
|
end
|
238
276
|
end
|
239
|
-
context "
|
277
|
+
context "--force" do
|
240
278
|
before do
|
241
|
-
@delete.options = @delete.options.merge(:force =>
|
242
|
-
stub_get("/1/statuses/show/26755176471724032.json").
|
243
|
-
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
244
|
-
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
279
|
+
@delete.options = @delete.options.merge(:force => true)
|
245
280
|
end
|
246
281
|
it "should request the correct resource" do
|
247
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\"? [y/N] ")
|
248
|
-
$stdin.should_receive(:gets).and_return("yes")
|
249
282
|
@delete.status("26755176471724032")
|
250
|
-
a_get("/1/statuses/show/26755176471724032.json").
|
251
|
-
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
252
|
-
should have_been_made
|
253
283
|
a_delete("/1/statuses/destroy/26755176471724032.json").
|
254
284
|
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
255
285
|
should have_been_made
|
256
286
|
end
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
$stdin.should_receive(:gets).and_return("yes")
|
261
|
-
@delete.status("26755176471724032")
|
262
|
-
$stdout.string.chomp.should == "@testcli deleted the status: \"The problem with your code is that it's doing exactly what you told it to do.\""
|
263
|
-
end
|
264
|
-
end
|
265
|
-
context "no" do
|
266
|
-
it "should have the correct output" do
|
267
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"The problem with your code is that it's doing exactly what you told it to do.\"? [y/N] ")
|
268
|
-
$stdin.should_receive(:gets).and_return("no")
|
269
|
-
@delete.status("26755176471724032")
|
270
|
-
$stdout.string.chomp.should be_empty
|
271
|
-
end
|
287
|
+
it "should have the correct output" do
|
288
|
+
@delete.status("26755176471724032")
|
289
|
+
$stdout.string.chomp.should == "@testcli deleted the status: \"The problem with your code is that it's doing exactly what you told it to do.\""
|
272
290
|
end
|
273
291
|
end
|
274
292
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
false
|
data/spec/fixtures/list.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"
|
1
|
+
{"name":"presidents","full_name":"@sferik\/presidents","member_count":2,"description":"Presidents of the United States of America","mode":"public","uri":"\/sferik\/presidents","user":{"id":7505382,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","url":"https:\/\/github.com\/sferik","created_at":"Mon Jul 16 12:59:01 +0000 2007","followers_count":2126,"default_profile":false,"profile_background_color":"000000","lang":"en","utc_offset":-28800,"name":"Erik Michaels-Ober","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","location":"San Francisco","profile_link_color":"0084B4","listed_count":115,"verified":false,"protected":false,"profile_use_background_image":true,"is_translator":false,"following":null,"description":"My heart is in the work.","profile_text_color":"333333","statuses_count":6951,"screen_name":"sferik","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","time_zone":"Pacific Time (US & Canada)","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","friends_count":204,"default_profile_image":false,"contributors_enabled":false,"profile_sidebar_border_color":"C0DEED","id_str":"7505382","geo_enabled":true,"favourites_count":3124,"profile_background_tile":false,"notifications":null,"show_all_inline_media":true,"profile_sidebar_fill_color":"DDEEF6","follow_request_sent":null},"id_str":"8863586","subscriber_count":1,"created_at":"Mon Mar 15 12:10:13 +0000 2010","following":false,"slug":"presidents","id":8863586}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"lists":[{"slug":"code-for-america","name":"code for america","full_name":"@sferik\/code-for-america","description":"Code for America","mode":"public","uri":"\/sferik\/code-for-america","user":{"id":7505382,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","url":"https:\/\/github.com\/sferik","created_at":"Mon Jul 16 12:59:01 +0000 2007","followers_count":2126,"default_profile":false,"profile_background_color":"000000","lang":"en","utc_offset":-28800,"name":"Erik Michaels-Ober","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","location":"San Francisco","profile_link_color":"0084B4","listed_count":115,"verified":false,"protected":false,"profile_use_background_image":true,"is_translator":false,"following":false,"description":"My heart is in the work.","profile_text_color":"333333","statuses_count":6953,"screen_name":"sferik","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","time_zone":"Pacific Time (US & Canada)","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","friends_count":204,"default_profile_image":false,"contributors_enabled":false,"profile_sidebar_border_color":"C0DEED","id_str":"7505382","geo_enabled":true,"favourites_count":3128,"profile_background_tile":false,"notifications":false,"show_all_inline_media":true,"profile_sidebar_fill_color":"DDEEF6","follow_request_sent":false},"member_count":26,"id_str":"21718825","created_at":"Tue Sep 14 21:46:56 +0000 2010","subscriber_count":5,"following":false,"id":21718825},{"slug":"presidents","name":"presidents","full_name":"@sferik\/presidents","description":"Presidents of the United States of America","mode":"public","uri":"\/sferik\/presidents","user":{"id":7505382,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","url":"https:\/\/github.com\/sferik","created_at":"Mon Jul 16 12:59:01 +0000 2007","followers_count":2126,"default_profile":false,"profile_background_color":"000000","lang":"en","utc_offset":-28800,"name":"Erik Michaels-Ober","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","location":"San Francisco","profile_link_color":"0084B4","listed_count":115,"verified":false,"protected":false,"profile_use_background_image":true,"is_translator":false,"following":false,"description":"My heart is in the work.","profile_text_color":"333333","statuses_count":6953,"screen_name":"sferik","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","time_zone":"Pacific Time (US & Canada)","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","friends_count":204,"default_profile_image":false,"contributors_enabled":false,"profile_sidebar_border_color":"C0DEED","id_str":"7505382","geo_enabled":true,"favourites_count":3128,"profile_background_tile":false,"notifications":false,"show_all_inline_media":true,"profile_sidebar_fill_color":"DDEEF6","follow_request_sent":false},"member_count":2,"id_str":"8863586","created_at":"Mon Mar 15 12:10:13 +0000 2010","subscriber_count":1,"following":false,"id":8863586}], "next_cursor":0, "previous_cursor":0, "next_cursor_str":"0", "previous_cursor_str":"0"}
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"placeType":{"code":7,"name":"Town"},"url":"http://where.yahooapis.com/v1/place/2367105","countryCode":"US","woeid":2367105,"name":"Boston","country":"United States"},{"countryCode":null,"url":"http://where.yahooapis.com/v1/place/1","woeid":1,"name":"Worldwide","country":"","placeType":{"code":19,"name":"Supername"}},{"url":"http://where.yahooapis.com/v1/place/2459115","woeid":2459115,"placeType":{"code":7,"name":"Town"},"countryCode":"US","name":"New York","country":"United States"},{"countryCode":"US","url":"http://where.yahooapis.com/v1/place/23424977","country":"United States","woeid":23424977,"name":"United States","placeType":{"code":12,"name":"Country"}},{"placeType":{"code":7,"name":"Town"},"countryCode":"US","url":"http://where.yahooapis.com/v1/place/2487956","woeid":2487956,"name":"San Francisco","country":"United States"}]
|
@@ -0,0 +1 @@
|
|
1
|
+
{"error":"The specified user is not a member of this list","request":"\/1\/lists\/members\/show.json?owner_screen_name=sferik&slug=presidents&screen_name=sferik"}
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"as_of":"2010-10-25T14:49:50Z","created_at":"2010-10-25T14:41:13Z","trends":[{"promoted_content":null,"query":"%23sevenwordsaftersex","url":"http:\/\/search.twitter.com\/search?q=%23sevenwordsaftersex","name":"#sevenwordsaftersex","events":null},{"promoted_content":null,"query":"Walkman","url":"http:\/\/search.twitter.com\/search?q=Walkman","name":"Walkman","events":null},{"promoted_content":null,"query":"Allen+Iverson","url":"http:\/\/search.twitter.com\/search?q=Allen+Iverson","name":"Allen Iverson","events":null}],"locations":[{"woeid":1,"name":"Worldwide"}]}]
|
@@ -0,0 +1 @@
|
|
1
|
+
true
|
data/spec/helper.rb
CHANGED
data/spec/list_spec.rb
CHANGED
@@ -26,31 +26,47 @@ describe T::List do
|
|
26
26
|
stub_get("/1/account/verify_credentials.json").
|
27
27
|
to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
28
28
|
stub_post("/1/lists/members/create_all.json").
|
29
|
-
with(:body => {:screen_name => "
|
29
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
30
30
|
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
31
31
|
end
|
32
32
|
it "should request the correct resource" do
|
33
|
-
@list.add("presidents", "
|
33
|
+
@list.add("presidents", "BarackObama")
|
34
34
|
a_get("/1/account/verify_credentials.json").
|
35
35
|
should have_been_made
|
36
36
|
a_post("/1/lists/members/create_all.json").
|
37
|
-
with(:body => {:screen_name => "
|
37
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
38
38
|
should have_been_made
|
39
39
|
end
|
40
40
|
it "should have the correct output" do
|
41
|
-
@list.add("presidents", "
|
41
|
+
@list.add("presidents", "BarackObama")
|
42
42
|
$stdout.string.should =~ /@testcli added 1 member to the list "presidents"\./
|
43
43
|
end
|
44
|
+
context "--id" do
|
45
|
+
before do
|
46
|
+
@list.options = @list.options.merge(:id => true)
|
47
|
+
stub_post("/1/lists/members/create_all.json").
|
48
|
+
with(:body => {:user_id => "7505382", :slug => "presidents", :owner_screen_name => "sferik"}).
|
49
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
50
|
+
end
|
51
|
+
it "should request the correct resource" do
|
52
|
+
@list.add("presidents", "7505382")
|
53
|
+
a_get("/1/account/verify_credentials.json").
|
54
|
+
should have_been_made
|
55
|
+
a_post("/1/lists/members/create_all.json").
|
56
|
+
with(:body => {:user_id => "7505382", :slug => "presidents", :owner_screen_name => "sferik"}).
|
57
|
+
should have_been_made
|
58
|
+
end
|
59
|
+
end
|
44
60
|
context "Twitter is down" do
|
45
61
|
it "should retry 3 times and then raise an error" do
|
46
62
|
stub_post("/1/lists/members/create_all.json").
|
47
|
-
with(:body => {:screen_name => "
|
63
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
48
64
|
to_return(:status => 502)
|
49
65
|
lambda do
|
50
|
-
@list.add("presidents", "
|
66
|
+
@list.add("presidents", "BarackObama")
|
51
67
|
end.should raise_error("Twitter is down or being upgraded.")
|
52
68
|
a_post("/1/lists/members/create_all.json").
|
53
|
-
with(:body => {:screen_name => "
|
69
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
54
70
|
should have_been_made.times(3)
|
55
71
|
end
|
56
72
|
end
|
@@ -75,6 +91,70 @@ describe T::List do
|
|
75
91
|
end
|
76
92
|
end
|
77
93
|
|
94
|
+
describe "#information" do
|
95
|
+
before do
|
96
|
+
@list.options = @list.options.merge(:profile => fixture_path + "/.trc")
|
97
|
+
stub_get("/1/lists/show.json").
|
98
|
+
with(:query => {:owner_screen_name => "testcli", :slug => "presidents"}).
|
99
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
100
|
+
end
|
101
|
+
it "should request the correct resource" do
|
102
|
+
@list.information("presidents")
|
103
|
+
a_get("/1/lists/show.json").
|
104
|
+
with(:query => {:owner_screen_name => "testcli", :slug => "presidents"}).
|
105
|
+
should have_been_made
|
106
|
+
end
|
107
|
+
it "should have the correct output" do
|
108
|
+
@list.information("presidents")
|
109
|
+
$stdout.string.should == <<-eos
|
110
|
+
ID 8863586
|
111
|
+
Description Presidents of the United States of America
|
112
|
+
Slug presidents
|
113
|
+
Screen name @sferik
|
114
|
+
Created at Mar 15 2010
|
115
|
+
Members 2
|
116
|
+
Subscribers 1
|
117
|
+
Status Not following
|
118
|
+
Mode public
|
119
|
+
URL https://twitter.com/sferik/presidents
|
120
|
+
eos
|
121
|
+
end
|
122
|
+
context "with a user passed" do
|
123
|
+
it "should request the correct resource" do
|
124
|
+
@list.information("testcli/presidents")
|
125
|
+
a_get("/1/lists/show.json").
|
126
|
+
with(:query => {:owner_screen_name => "testcli", :slug => "presidents"}).
|
127
|
+
should have_been_made
|
128
|
+
end
|
129
|
+
context "--id" do
|
130
|
+
before do
|
131
|
+
@list.options = @list.options.merge(:id => true)
|
132
|
+
stub_get("/1/lists/show.json").
|
133
|
+
with(:query => {:owner_id => "7505382", :slug => "presidents"}).
|
134
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
135
|
+
end
|
136
|
+
it "should request the correct resource" do
|
137
|
+
@list.information("7505382/presidents")
|
138
|
+
a_get("/1/lists/show.json").
|
139
|
+
with(:query => {:owner_id => "7505382", :slug => "presidents"}).
|
140
|
+
should have_been_made
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
context "--csv" do
|
145
|
+
before do
|
146
|
+
@list.options = @list.options.merge(:csv => true)
|
147
|
+
end
|
148
|
+
it "should have the correct output" do
|
149
|
+
@list.information("presidents")
|
150
|
+
$stdout.string.should == <<-eos
|
151
|
+
ID,Description,Slug,Screen name,Created at,Members,Subscribers,Following,Mode,URL
|
152
|
+
8863586,Presidents of the United States of America,presidents,sferik,2010-03-15 12:10:13 +0000,2,1,false,public,https://twitter.com/sferik/presidents
|
153
|
+
eos
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
78
158
|
describe "#members" do
|
79
159
|
before do
|
80
160
|
stub_get("/1/lists/members.json").
|
@@ -89,15 +169,19 @@ describe T::List do
|
|
89
169
|
end
|
90
170
|
it "should have the correct output" do
|
91
171
|
@list.members("presidents")
|
92
|
-
$stdout.string.
|
172
|
+
$stdout.string.rstrip.should == "@pengwynn @sferik"
|
93
173
|
end
|
94
|
-
context "--
|
174
|
+
context "--csv" do
|
95
175
|
before do
|
96
|
-
@list.options = @list.options.merge(:
|
176
|
+
@list.options = @list.options.merge(:csv => true)
|
97
177
|
end
|
98
|
-
it "should
|
178
|
+
it "should output in CSV format" do
|
99
179
|
@list.members("presidents")
|
100
|
-
$stdout.string.
|
180
|
+
$stdout.string.should == <<-eos
|
181
|
+
ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
|
182
|
+
14100886,2008-03-08 16:34:22 +0000,3913,32,185,1871,2767,pengwynn,Wynn Netherland
|
183
|
+
7505382,2007-07-16 12:59:01 +0000,2962,727,29,88,898,sferik,Erik Michaels-Ober
|
184
|
+
eos
|
101
185
|
end
|
102
186
|
end
|
103
187
|
context "--favorites" do
|
@@ -106,7 +190,7 @@ describe T::List do
|
|
106
190
|
end
|
107
191
|
it "should sort by number of favorites" do
|
108
192
|
@list.members("presidents")
|
109
|
-
$stdout.string.
|
193
|
+
$stdout.string.rstrip.should == "@pengwynn @sferik"
|
110
194
|
end
|
111
195
|
end
|
112
196
|
context "--followers" do
|
@@ -115,7 +199,7 @@ describe T::List do
|
|
115
199
|
end
|
116
200
|
it "should sort by number of followers" do
|
117
201
|
@list.members("presidents")
|
118
|
-
$stdout.string.
|
202
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
119
203
|
end
|
120
204
|
end
|
121
205
|
context "--friends" do
|
@@ -124,7 +208,7 @@ describe T::List do
|
|
124
208
|
end
|
125
209
|
it "should sort by number of friends" do
|
126
210
|
@list.members("presidents")
|
127
|
-
$stdout.string.
|
211
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
128
212
|
end
|
129
213
|
end
|
130
214
|
context "--listed" do
|
@@ -133,14 +217,14 @@ describe T::List do
|
|
133
217
|
end
|
134
218
|
it "should sort by number of list memberships" do
|
135
219
|
@list.members("presidents")
|
136
|
-
$stdout.string.
|
220
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
137
221
|
end
|
138
222
|
end
|
139
223
|
context "--long" do
|
140
224
|
before do
|
141
225
|
@list.options = @list.options.merge(:long => true)
|
142
226
|
end
|
143
|
-
it "should
|
227
|
+
it "should output in long format" do
|
144
228
|
@list.members("presidents")
|
145
229
|
$stdout.string.should == <<-eos
|
146
230
|
ID Since Tweets Favorites Listed Following Followers Screen name Name
|
@@ -149,13 +233,22 @@ ID Since Tweets Favorites Listed Following Followers Screen
|
|
149
233
|
eos
|
150
234
|
end
|
151
235
|
end
|
236
|
+
context "--posted" do
|
237
|
+
before do
|
238
|
+
@list.options = @list.options.merge(:posted => true)
|
239
|
+
end
|
240
|
+
it "should sort by the time wshen Twitter account was created" do
|
241
|
+
@list.members("presidents")
|
242
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
243
|
+
end
|
244
|
+
end
|
152
245
|
context "--reverse" do
|
153
246
|
before do
|
154
247
|
@list.options = @list.options.merge(:reverse => true)
|
155
248
|
end
|
156
249
|
it "should reverse the order of the sort" do
|
157
250
|
@list.members("presidents")
|
158
|
-
$stdout.string.
|
251
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
159
252
|
end
|
160
253
|
end
|
161
254
|
context "--tweets" do
|
@@ -164,24 +257,38 @@ ID Since Tweets Favorites Listed Following Followers Screen
|
|
164
257
|
end
|
165
258
|
it "should sort by number of Tweets" do
|
166
259
|
@list.members("presidents")
|
167
|
-
$stdout.string.
|
260
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
168
261
|
end
|
169
262
|
end
|
170
|
-
context "
|
263
|
+
context "--unsorted" do
|
171
264
|
before do
|
172
|
-
|
173
|
-
|
174
|
-
|
265
|
+
@list.options = @list.options.merge(:unsorted => true)
|
266
|
+
end
|
267
|
+
it "should not be sorted" do
|
268
|
+
@list.members("presidents")
|
269
|
+
$stdout.string.rstrip.should == "@sferik @pengwynn"
|
175
270
|
end
|
271
|
+
end
|
272
|
+
context "with a user passed" do
|
176
273
|
it "should request the correct resource" do
|
177
|
-
@list.members("
|
274
|
+
@list.members("testcli/presidents")
|
178
275
|
a_get("/1/lists/members.json").
|
179
|
-
with(:query => {:cursor => "-1", :include_entities => "false", :owner_screen_name => "
|
276
|
+
with(:query => {:cursor => "-1", :include_entities => "false", :owner_screen_name => "testcli", :skip_status => "true", :slug => "presidents"}).
|
180
277
|
should have_been_made
|
181
278
|
end
|
182
|
-
|
183
|
-
|
184
|
-
|
279
|
+
context "--id" do
|
280
|
+
before do
|
281
|
+
@list.options = @list.options.merge(:id => true)
|
282
|
+
stub_get("/1/lists/members.json").
|
283
|
+
with(:query => {:cursor => "-1", :include_entities => "false", :owner_id => "7505382", :skip_status => "true", :slug => "presidents"}).
|
284
|
+
to_return(:body => fixture("users_list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
285
|
+
end
|
286
|
+
it "should request the correct resource" do
|
287
|
+
@list.members("7505382/presidents")
|
288
|
+
a_get("/1/lists/members.json").
|
289
|
+
with(:query => {:cursor => "-1", :include_entities => "false", :owner_id => "7505382", :skip_status => "true", :slug => "presidents"}).
|
290
|
+
should have_been_made
|
291
|
+
end
|
185
292
|
end
|
186
293
|
end
|
187
294
|
end
|
@@ -194,32 +301,48 @@ ID Since Tweets Favorites Listed Following Followers Screen
|
|
194
301
|
end
|
195
302
|
it "should request the correct resource" do
|
196
303
|
stub_post("/1/lists/members/destroy_all.json").
|
197
|
-
with(:body => {:screen_name => "
|
304
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
198
305
|
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
199
|
-
@list.remove("presidents", "
|
306
|
+
@list.remove("presidents", "BarackObama")
|
200
307
|
a_get("/1/account/verify_credentials.json").
|
201
308
|
should have_been_made
|
202
309
|
a_post("/1/lists/members/destroy_all.json").
|
203
|
-
with(:body => {:screen_name => "
|
310
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
204
311
|
should have_been_made
|
205
312
|
end
|
206
313
|
it "should have the correct output" do
|
207
314
|
stub_post("/1/lists/members/destroy_all.json").
|
208
|
-
with(:body => {:screen_name => "
|
315
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
209
316
|
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
210
|
-
@list.remove("presidents", "
|
317
|
+
@list.remove("presidents", "BarackObama")
|
211
318
|
$stdout.string.should =~ /@testcli removed 1 member from the list "presidents"\./
|
212
319
|
end
|
320
|
+
context "--id" do
|
321
|
+
before do
|
322
|
+
@list.options = @list.options.merge(:id => true)
|
323
|
+
stub_post("/1/lists/members/destroy_all.json").
|
324
|
+
with(:body => {:user_id => "7505382", :slug => "presidents", :owner_screen_name => "sferik"}).
|
325
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
326
|
+
end
|
327
|
+
it "should request the correct resource" do
|
328
|
+
@list.remove("presidents", "7505382")
|
329
|
+
a_get("/1/account/verify_credentials.json").
|
330
|
+
should have_been_made
|
331
|
+
a_post("/1/lists/members/destroy_all.json").
|
332
|
+
with(:body => {:user_id => "7505382", :slug => "presidents", :owner_screen_name => "sferik"}).
|
333
|
+
should have_been_made
|
334
|
+
end
|
335
|
+
end
|
213
336
|
context "Twitter is down" do
|
214
337
|
it "should retry 3 times and then raise an error" do
|
215
338
|
stub_post("/1/lists/members/destroy_all.json").
|
216
|
-
with(:body => {:screen_name => "
|
339
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
217
340
|
to_return(:status => 502)
|
218
341
|
lambda do
|
219
|
-
@list.remove("presidents", "
|
342
|
+
@list.remove("presidents", "BarackObama")
|
220
343
|
end.should raise_error("Twitter is down or being upgraded.")
|
221
344
|
a_post("/1/lists/members/destroy_all.json").
|
222
|
-
with(:body => {:screen_name => "
|
345
|
+
with(:body => {:screen_name => "BarackObama", :slug => "presidents", :owner_screen_name => "sferik"}).
|
223
346
|
should have_been_made.times(3)
|
224
347
|
end
|
225
348
|
end
|
@@ -259,11 +382,39 @@ ID Since Tweets Favorites Listed Following Followers Screen
|
|
259
382
|
kelseysilver: San Francisco here I come! (@ Newark Liberty International Airport (EWR) w/ 92 others) http://t.co/eoLANJZw (7 months ago)
|
260
383
|
eos
|
261
384
|
end
|
385
|
+
context "--csv" do
|
386
|
+
before do
|
387
|
+
@list.options = @list.options.merge(:csv => true)
|
388
|
+
end
|
389
|
+
it "should output in long format" do
|
390
|
+
@list.timeline("presidents")
|
391
|
+
$stdout.string.should == <<-eos
|
392
|
+
ID,Posted at,Screen name,Text
|
393
|
+
194548121416630272,2011-04-23 22:07:41 +0000,natevillegas,RT @gelobautista #riordan RT @WilI_Smith: Yesterday is history. Tomorrow is a mystery. Today is a gift. That's why it's called the present.
|
394
|
+
194547993607806976,2011-04-23 22:07:10 +0000,TD,@kelseysilver how long will you be in town?
|
395
|
+
194547987593183233,2011-04-23 22:07:09 +0000,rusashka,@maciej hahaha :) @gpena together we're going to cover all core 28 languages!
|
396
|
+
194547824690597888,2011-04-23 22:06:30 +0000,fat,@stevej @xc i'm going to picket when i get back.
|
397
|
+
194547658562605057,2011-04-23 22:05:51 +0000,wil,@0x9900 @paulnivin http://t.co/bwVdtAPe
|
398
|
+
194547528430137344,2011-04-23 22:05:19 +0000,wangtian,"@tianhonghe @xiangxin72 oh, you can even order specific items?"
|
399
|
+
194547402550689793,2011-04-23 22:04:49 +0000,shinypb,"@kpk Pfft, I think you're forgetting mechanical television, which depended on a clever German. http://t.co/JvLNQCDm @skilldrick @hoverbird"
|
400
|
+
194547260233760768,2011-04-23 22:04:16 +0000,0x9900,@wil @paulnivin if you want to take you seriously don't say daemontools!
|
401
|
+
194547084349804544,2011-04-23 22:03:34 +0000,kpk,@shinypb @skilldrick @hoverbird invented it
|
402
|
+
194546876782092291,2011-04-23 22:02:44 +0000,skilldrick,@shinypb Well played :) @hoverbird
|
403
|
+
194546811480969217,2011-04-23 22:02:29 +0000,sam,"Can someone project the date that I'll get a 27"" retina display?"
|
404
|
+
194546738810458112,2011-04-23 22:02:11 +0000,shinypb,"@skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain."
|
405
|
+
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons. Lot’s of fun. Expect improvements in the weeks to come."
|
406
|
+
194546649203347456,2011-04-23 22:01:50 +0000,skilldrick,"@hoverbird @shinypb You guys must be soooo old, I don't remember the words to the duck tales intro at all."
|
407
|
+
194546583608639488,2011-04-23 22:01:34 +0000,sean,@mep Thanks for coming by. Was great to have you.
|
408
|
+
194546388707717120,2011-04-23 22:00:48 +0000,hoverbird,"@shinypb @trammell it's all suck a ""duck blur"" sometimes."
|
409
|
+
194546264212385793,2011-04-23 22:00:18 +0000,kelseysilver,San Francisco here I come! (@ Newark Liberty International Airport (EWR) w/ 92 others) http://t.co/eoLANJZw
|
410
|
+
eos
|
411
|
+
end
|
412
|
+
end
|
262
413
|
context "--long" do
|
263
414
|
before do
|
264
415
|
@list.options = @list.options.merge(:long => true)
|
265
416
|
end
|
266
|
-
it "should
|
417
|
+
it "should output in long format" do
|
267
418
|
@list.timeline("presidents")
|
268
419
|
$stdout.string.should == <<-eos
|
269
420
|
ID Posted at Screen name Text
|
@@ -328,39 +479,26 @@ ID Posted at Screen name Text
|
|
328
479
|
eos
|
329
480
|
end
|
330
481
|
end
|
331
|
-
context "with a
|
332
|
-
before do
|
333
|
-
stub_get("/1/lists/statuses.json").
|
334
|
-
with(:query => {:owner_screen_name => "sferik", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
|
335
|
-
to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
336
|
-
end
|
482
|
+
context "with a user passed" do
|
337
483
|
it "should request the correct resource" do
|
338
|
-
@list.timeline("
|
484
|
+
@list.timeline("testcli/presidents")
|
339
485
|
a_get("/1/lists/statuses.json").
|
340
|
-
with(:query => {:owner_screen_name => "
|
486
|
+
with(:query => {:owner_screen_name => "testcli", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
|
341
487
|
should have_been_made
|
342
488
|
end
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
sam: Can someone project the date that I'll get a 27" retina display? (7 months ago)
|
357
|
-
shinypb: @skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain. (7 months ago)
|
358
|
-
bartt: @noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons. Lot’s of fun. Expect improvements in the weeks to come. (7 months ago)
|
359
|
-
skilldrick: @hoverbird @shinypb You guys must be soooo old, I don't remember the words to the duck tales intro at all. (7 months ago)
|
360
|
-
sean: @mep Thanks for coming by. Was great to have you. (7 months ago)
|
361
|
-
hoverbird: @shinypb @trammell it's all suck a "duck blur" sometimes. (7 months ago)
|
362
|
-
kelseysilver: San Francisco here I come! (@ Newark Liberty International Airport (EWR) w/ 92 others) http://t.co/eoLANJZw (7 months ago)
|
363
|
-
eos
|
489
|
+
context "--id" do
|
490
|
+
before do
|
491
|
+
@list.options = @list.options.merge(:id => true)
|
492
|
+
stub_get("/1/lists/statuses.json").
|
493
|
+
with(:query => {:owner_id => "7505382", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
|
494
|
+
to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
495
|
+
end
|
496
|
+
it "should request the correct resource" do
|
497
|
+
@list.timeline("7505382/presidents")
|
498
|
+
a_get("/1/lists/statuses.json").
|
499
|
+
with(:query => {:owner_id => "7505382", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
|
500
|
+
should have_been_made
|
501
|
+
end
|
364
502
|
end
|
365
503
|
end
|
366
504
|
end
|