t 0.8.3 → 0.9.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.
- data/README.md +11 -9
- data/lib/t/authorizable.rb +27 -0
- data/lib/t/cli.rb +19 -35
- data/lib/t/list.rb +1 -1
- data/lib/t/printable.rb +51 -26
- data/lib/t/search.rb +44 -6
- data/lib/t/stream.rb +91 -0
- data/lib/t/version.rb +2 -2
- data/spec/cli_spec.rb +6 -10
- data/spec/list_spec.rb +1 -2
- data/spec/search_spec.rb +104 -33
- data/t.gemspec +2 -0
- metadata +301 -266
data/lib/t/stream.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
require 't/printable'
|
2
|
+
require 't/rcfile'
|
3
|
+
require 'thor'
|
4
|
+
require 'tweetstream'
|
5
|
+
|
6
|
+
module T
|
7
|
+
class Stream < Thor
|
8
|
+
include T::Printable
|
9
|
+
|
10
|
+
def initialize(*)
|
11
|
+
super
|
12
|
+
@rcfile = RCFile.instance
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "all", "Stream a random sample of all Tweets (Control-C to stop)"
|
16
|
+
def all
|
17
|
+
client.on_timeline_status do |status|
|
18
|
+
print_status(status)
|
19
|
+
end
|
20
|
+
Signal.trap("TERM") do
|
21
|
+
client.stop
|
22
|
+
shutdown
|
23
|
+
end
|
24
|
+
client.sample
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "matrix", "Unfortunately, no one can be told what the Matrix is. You have to see it for yourself."
|
28
|
+
def matrix
|
29
|
+
client.on_timeline_status do |status|
|
30
|
+
print("#{Thor::Shell::Color::BOLD}#{Thor::Shell::Color::GREEN}#{Thor::Shell::Color::ON_BLACK}#{status.text.gsub("\n", '')}#{Thor::Shell::Color::CLEAR}")
|
31
|
+
end
|
32
|
+
Signal.trap("TERM") do
|
33
|
+
client.stop
|
34
|
+
shutdown
|
35
|
+
end
|
36
|
+
client.sample
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "search KEYWORD [KEYWORD...]", "Stream Tweets that contain specified keywords, joined with logical ORs (Control-C to stop)"
|
40
|
+
def search(keyword, *keywords)
|
41
|
+
keywords.unshift(keyword)
|
42
|
+
client.on_timeline_status do |status|
|
43
|
+
print_status(status)
|
44
|
+
end
|
45
|
+
Signal.trap("TERM") do
|
46
|
+
client.stop
|
47
|
+
shutdown
|
48
|
+
end
|
49
|
+
client.track(keywords)
|
50
|
+
end
|
51
|
+
|
52
|
+
desc "timeline", "Stream your timeline (Control-C to stop)"
|
53
|
+
def timeline
|
54
|
+
client.on_timeline_status do |status|
|
55
|
+
print_status(status)
|
56
|
+
end
|
57
|
+
Signal.trap("TERM") do
|
58
|
+
client.stop
|
59
|
+
shutdown
|
60
|
+
end
|
61
|
+
client.userstream
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "users SCREEN_NAME [SCREEN_NAME...]", "Stream Tweets either from or in reply to specified users (Control-C to stop)"
|
65
|
+
def users(screen_name, *screen_names)
|
66
|
+
screen_names.unshift(screen_name)
|
67
|
+
client.on_timeline_status do |status|
|
68
|
+
print_status(status)
|
69
|
+
end
|
70
|
+
Signal.trap("TERM") do
|
71
|
+
client.stop
|
72
|
+
shutdown
|
73
|
+
end
|
74
|
+
client.follow(screen_names)
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
|
79
|
+
def client
|
80
|
+
return @client if @client
|
81
|
+
@rcfile.path = options['profile'] if options['profile']
|
82
|
+
@client = TweetStream::Client.new(
|
83
|
+
:consumer_key => @rcfile.active_consumer_key,
|
84
|
+
:consumer_secret => @rcfile.active_consumer_secret,
|
85
|
+
:oauth_token => @rcfile.active_token,
|
86
|
+
:oauth_token_secret => @rcfile.active_secret
|
87
|
+
)
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
data/lib/t/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -722,7 +722,6 @@ ID Since Tweets Favorites Listed Following Followers Scre...
|
|
722
722
|
$stdout.string.should =~ /@natevillegas/
|
723
723
|
$stdout.string.should =~ /RT @gelobautista #riordan RT @WilI_Smith: Yesterday is history\. Tomorrow is a /
|
724
724
|
$stdout.string.should =~ /mystery\. Today is a gift\. That's why it's called the present\./
|
725
|
-
$stdout.string.should =~ /7 months ago/
|
726
725
|
end
|
727
726
|
context "--csv" do
|
728
727
|
before do
|
@@ -744,7 +743,7 @@ ID,Posted at,Screen name,Text
|
|
744
743
|
194546876782092291,2011-04-23 22:02:44 +0000,skilldrick,@shinypb Well played :) @hoverbird
|
745
744
|
194546811480969217,2011-04-23 22:02:29 +0000,sam,"Can someone project the date that I'll get a 27"" retina display?"
|
746
745
|
194546738810458112,2011-04-23 22:02:11 +0000,shinypb,"@skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain."
|
747
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
746
|
+
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."
|
748
747
|
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."
|
749
748
|
194546583608639488,2011-04-23 22:01:34 +0000,sean,@mep Thanks for coming by. Was great to have you.
|
750
749
|
194546388707717120,2011-04-23 22:00:48 +0000,hoverbird,"@shinypb @trammell it's all suck a ""duck blur"" sometimes."
|
@@ -1703,7 +1702,6 @@ ID Created at Slug Members Subscribers Mode ...
|
|
1703
1702
|
$stdout.string.should =~ /@natevillegas/
|
1704
1703
|
$stdout.string.should =~ /RT @gelobautista #riordan RT @WilI_Smith: Yesterday is history\. Tomorrow is a /
|
1705
1704
|
$stdout.string.should =~ /mystery\. Today is a gift\. That's why it's called the present\./
|
1706
|
-
$stdout.string.should =~ /7 months ago/
|
1707
1705
|
end
|
1708
1706
|
context "--csv" do
|
1709
1707
|
before do
|
@@ -1725,7 +1723,7 @@ ID,Posted at,Screen name,Text
|
|
1725
1723
|
194546876782092291,2011-04-23 22:02:44 +0000,skilldrick,@shinypb Well played :) @hoverbird
|
1726
1724
|
194546811480969217,2011-04-23 22:02:29 +0000,sam,"Can someone project the date that I'll get a 27"" retina display?"
|
1727
1725
|
194546738810458112,2011-04-23 22:02:11 +0000,shinypb,"@skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain."
|
1728
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
1726
|
+
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."
|
1729
1727
|
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."
|
1730
1728
|
194546583608639488,2011-04-23 22:01:34 +0000,sean,@mep Thanks for coming by. Was great to have you.
|
1731
1729
|
194546388707717120,2011-04-23 22:00:48 +0000,hoverbird,"@shinypb @trammell it's all suck a ""duck blur"" sometimes."
|
@@ -1972,7 +1970,6 @@ ID Posted at Screen name Text
|
|
1972
1970
|
$stdout.string.should =~ /@natevillegas/
|
1973
1971
|
$stdout.string.should =~ /RT @gelobautista #riordan RT @WilI_Smith: Yesterday is history\. Tomorrow is a /
|
1974
1972
|
$stdout.string.should =~ /mystery\. Today is a gift\. That's why it's called the present\./
|
1975
|
-
$stdout.string.should =~ /7 months ago/
|
1976
1973
|
end
|
1977
1974
|
end
|
1978
1975
|
context "--csv" do
|
@@ -1995,7 +1992,7 @@ ID,Posted at,Screen name,Text
|
|
1995
1992
|
194546876782092291,2011-04-23 22:02:44 +0000,skilldrick,@shinypb Well played :) @hoverbird
|
1996
1993
|
194546811480969217,2011-04-23 22:02:29 +0000,sam,"Can someone project the date that I'll get a 27"" retina display?"
|
1997
1994
|
194546738810458112,2011-04-23 22:02:11 +0000,shinypb,"@skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain."
|
1998
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
1995
|
+
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."
|
1999
1996
|
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."
|
2000
1997
|
194546583608639488,2011-04-23 22:01:34 +0000,sean,@mep Thanks for coming by. Was great to have you.
|
2001
1998
|
194546388707717120,2011-04-23 22:00:48 +0000,hoverbird,"@shinypb @trammell it's all suck a ""duck blur"" sometimes."
|
@@ -2332,7 +2329,6 @@ ID Since Tweets Favorites Listed Following Followers Scre...
|
|
2332
2329
|
$stdout.string.should =~ /@natevillegas/
|
2333
2330
|
$stdout.string.should =~ /RT @gelobautista #riordan RT @WilI_Smith: Yesterday is history\. Tomorrow is a /
|
2334
2331
|
$stdout.string.should =~ /mystery\. Today is a gift\. That's why it's called the present\./
|
2335
|
-
$stdout.string.should =~ /7 months ago/
|
2336
2332
|
end
|
2337
2333
|
end
|
2338
2334
|
context "--csv" do
|
@@ -2355,7 +2351,7 @@ ID,Posted at,Screen name,Text
|
|
2355
2351
|
194546876782092291,2011-04-23 22:02:44 +0000,skilldrick,@shinypb Well played :) @hoverbird
|
2356
2352
|
194546811480969217,2011-04-23 22:02:29 +0000,sam,"Can someone project the date that I'll get a 27"" retina display?"
|
2357
2353
|
194546738810458112,2011-04-23 22:02:11 +0000,shinypb,"@skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain."
|
2358
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
2354
|
+
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."
|
2359
2355
|
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."
|
2360
2356
|
194546583608639488,2011-04-23 22:01:34 +0000,sean,@mep Thanks for coming by. Was great to have you.
|
2361
2357
|
194546388707717120,2011-04-23 22:00:48 +0000,hoverbird,"@shinypb @trammell it's all suck a ""duck blur"" sometimes."
|
@@ -2812,7 +2808,7 @@ Name Erik Michaels-Ober
|
|
2812
2808
|
Bio A mind forever voyaging through strange seas of thought, alone.
|
2813
2809
|
Location San Francisco
|
2814
2810
|
Status Not following
|
2815
|
-
Last update RT @tenderlove: [ANN] sqlite3-ruby
|
2811
|
+
Last update RT @tenderlove: [ANN] sqlite3-ruby => sqlite3 (10 months ago)
|
2816
2812
|
Since Jul 16 2007
|
2817
2813
|
Tweets 3,479
|
2818
2814
|
Favorites 1,040
|
@@ -2830,7 +2826,7 @@ URL https://github.com/sferik
|
|
2830
2826
|
@cli.whois("sferik")
|
2831
2827
|
$stdout.string.should == <<-eos
|
2832
2828
|
ID,Verified,Name,Screen name,Bio,Location,Following,Last update,Lasted updated at,Since,Tweets,Favorites,Listed,Following,Followers,URL
|
2833
|
-
7505382,false,Erik Michaels-Ober,sferik,"A mind forever voyaging through strange seas of thought, alone.",San Francisco,false,RT @tenderlove: [ANN] sqlite3-ruby
|
2829
|
+
7505382,false,Erik Michaels-Ober,sferik,"A mind forever voyaging through strange seas of thought, alone.",San Francisco,false,RT @tenderlove: [ANN] sqlite3-ruby => sqlite3,2011-01-16 21:38:25 +0000,2007-07-16 12:59:01 +0000,3479,1040,41,197,1048,https://github.com/sferik
|
2834
2830
|
eos
|
2835
2831
|
end
|
2836
2832
|
end
|
data/spec/list_spec.rb
CHANGED
@@ -365,7 +365,6 @@ ID Since Tweets Favorites Listed Following Followers Scre...
|
|
365
365
|
$stdout.string.should =~ /@natevillegas/
|
366
366
|
$stdout.string.should =~ /RT @gelobautista #riordan RT @WilI_Smith: Yesterday is history\. Tomorrow is a /
|
367
367
|
$stdout.string.should =~ /mystery\. Today is a gift\. That's why it's called the present\./
|
368
|
-
$stdout.string.should =~ /7 months ago/
|
369
368
|
end
|
370
369
|
context "--csv" do
|
371
370
|
before do
|
@@ -387,7 +386,7 @@ ID,Posted at,Screen name,Text
|
|
387
386
|
194546876782092291,2011-04-23 22:02:44 +0000,skilldrick,@shinypb Well played :) @hoverbird
|
388
387
|
194546811480969217,2011-04-23 22:02:29 +0000,sam,"Can someone project the date that I'll get a 27"" retina display?"
|
389
388
|
194546738810458112,2011-04-23 22:02:11 +0000,shinypb,"@skilldrick @hoverbird Wow, I didn't even know they *had* TV in Britain."
|
390
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
389
|
+
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."
|
391
390
|
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."
|
392
391
|
194546583608639488,2011-04-23 22:01:34 +0000,sean,@mep Thanks for coming by. Was great to have you.
|
393
392
|
194546388707717120,2011-04-23 22:00:48 +0000,hoverbird,"@shinypb @trammell it's all suck a ""duck blur"" sometimes."
|
data/spec/search_spec.rb
CHANGED
@@ -34,23 +34,8 @@ describe T::Search do
|
|
34
34
|
end
|
35
35
|
it "should have the correct output" do
|
36
36
|
@search.all("twitter")
|
37
|
-
$stdout.string.should
|
38
|
-
|
39
|
-
lauravgeest: Twitter doet het al 7 uur niet meer (7 months ago)
|
40
|
-
Jenny_Bearx333: I keep thinking that twitter is @instagram , and therefore double tap all the pics I like... #NotWorking (7 months ago)
|
41
|
-
misspoxtonX: RT @jordantaylorhi: twitter friends > twats at school (7 months ago)
|
42
|
-
PatrickBrickman: RT @zeus30hightower: Too all Bama fans and followers my cousin mark Barron doesn't have a twitter so please disregard any tweets from that user (7 months ago)
|
43
|
-
KolonelX: Ik refresh twitter op me telefoon terwijl ik tweetdeck voor me open heb staan (7 months ago)
|
44
|
-
VLGPRLG5: @mikeyway and you too RT @NimcyGD: @gerardway Get your ass back to twitter, okay? :3 (7 months ago)
|
45
|
-
xRhiBabyx: Trying to persuade the boyf to get on twitter and failing. Help? @holly_haime @Ckwarburton @samwarburton_ @chrishaime @rowloboy (7 months ago)
|
46
|
-
juliotrv: RT @lookinglassbr: Lançamentos outono-inverno 2012...CONFIRA em http://t.co/YAk8OXp7 http://t.co/fmmrVrbG (7 months ago)
|
47
|
-
shanleyaustin27: RT @caaammmmi: @shanleyaustin27 .....and this hahahahaa http://t.co/wzCMx6ZU (7 months ago)
|
48
|
-
Dame_Valuta: RT @Paiser10: Great @chelseafc training at Nou Camp! #cfc http://t.co/k00TnRyR (7 months ago)
|
49
|
-
miss_indyiah: smh, @IndianaHustle done turned into a twitter addict..fuck goin on lol ? (7 months ago)
|
50
|
-
CAROLINEWOLLER: RT @Mark_Ingram28: To all Bama fans and followers, please unfollow and pay no attention to any user posing to be Mark Barron. My bro doesn't have a twitter! (7 months ago)
|
51
|
-
shelbytrenchdww: RT @The90sLife: Admit it, we all have a cabinet that looks like this. http://t.co/gQEkQw5G (7 months ago)
|
52
|
-
kabos84: RT @JF_q8: بالله عليكم ،، مو عيب !!! .. http://t.co/e29GV7Ow (7 months ago)
|
53
|
-
eos
|
37
|
+
$stdout.string.should =~ /@JessRoveel/
|
38
|
+
$stdout.string.should =~ /Pondre lo mas importante de Hamlet en Twitter para recordarlo mejor :D/
|
54
39
|
end
|
55
40
|
context "--csv" do
|
56
41
|
before do
|
@@ -63,7 +48,7 @@ ID,Posted at,Screen name,Text
|
|
63
48
|
194521262415032320,2011-04-23 20:20:57 +0000,JessRoveel,Pondre lo mas importante de Hamlet en Twitter para recordarlo mejor :D
|
64
49
|
194521262326951936,2011-04-23 20:20:57 +0000,lauravgeest,Twitter doet het al 7 uur niet meer
|
65
50
|
194521262234669056,2011-04-23 20:20:57 +0000,Jenny_Bearx333,"I keep thinking that twitter is @instagram , and therefore double tap all the pics I like... #NotWorking"
|
66
|
-
194521262138204160,2011-04-23 20:20:57 +0000,misspoxtonX,RT @jordantaylorhi: twitter friends
|
51
|
+
194521262138204160,2011-04-23 20:20:57 +0000,misspoxtonX,RT @jordantaylorhi: twitter friends > twats at school
|
67
52
|
194521262134001665,2011-04-23 20:20:57 +0000,PatrickBrickman,RT @zeus30hightower: Too all Bama fans and followers my cousin mark Barron doesn't have a twitter so please disregard any tweets from that user
|
68
53
|
194521262129811456,2011-04-23 20:20:57 +0000,KolonelX,Ik refresh twitter op me telefoon terwijl ik tweetdeck voor me open heb staan
|
69
54
|
194521261852995586,2011-04-23 20:20:57 +0000,VLGPRLG5,"@mikeyway and you too RT @NimcyGD: @gerardway Get your ass back to twitter, okay? :3"
|
@@ -145,9 +130,8 @@ ID Posted at Screen name Text
|
|
145
130
|
it "should have the correct output" do
|
146
131
|
@search.favorites("twitter")
|
147
132
|
$stdout.string.should =~ /@bartt/
|
148
|
-
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter
|
133
|
+
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons\. Lot’s/
|
149
134
|
$stdout.string.should =~ /fun\. Expect improvements in the weeks to come\./
|
150
|
-
$stdout.string.should =~ /7 months ago/
|
151
135
|
end
|
152
136
|
context "--csv" do
|
153
137
|
before do
|
@@ -157,7 +141,7 @@ ID Posted at Screen name Text
|
|
157
141
|
@search.favorites("twitter")
|
158
142
|
$stdout.string.should == <<-eos
|
159
143
|
ID,Posted at,Screen name,Text
|
160
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
144
|
+
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."
|
161
145
|
eos
|
162
146
|
end
|
163
147
|
end
|
@@ -209,9 +193,8 @@ ID Posted at Screen name Text
|
|
209
193
|
it "should have the correct output" do
|
210
194
|
@search.mentions("twitter")
|
211
195
|
$stdout.string.should =~ /@bartt/
|
212
|
-
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter
|
196
|
+
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons\. Lot’s/
|
213
197
|
$stdout.string.should =~ /fun\. Expect improvements in the weeks to come\./
|
214
|
-
$stdout.string.should =~ /7 months ago/
|
215
198
|
end
|
216
199
|
context "--csv" do
|
217
200
|
before do
|
@@ -221,7 +204,7 @@ ID Posted at Screen name Text
|
|
221
204
|
@search.mentions("twitter")
|
222
205
|
$stdout.string.should == <<-eos
|
223
206
|
ID,Posted at,Screen name,Text
|
224
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
207
|
+
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."
|
225
208
|
eos
|
226
209
|
end
|
227
210
|
end
|
@@ -252,6 +235,97 @@ ID Posted at Screen name Text
|
|
252
235
|
end
|
253
236
|
end
|
254
237
|
|
238
|
+
describe "#list" do
|
239
|
+
before do
|
240
|
+
stub_get("/1/lists/statuses.json").
|
241
|
+
with(:query => {:count => "200", :owner_screen_name => "testcli", :slug => "presidents"}).
|
242
|
+
to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
243
|
+
stub_get("/1/lists/statuses.json").
|
244
|
+
with(:query => {:count => "200", :max_id => "194546264212385792", :owner_screen_name => "testcli", :slug => "presidents"}).
|
245
|
+
to_return(:body => fixture("empty_array.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
246
|
+
end
|
247
|
+
it "should request the correct resource" do
|
248
|
+
@search.list("presidents", "twitter")
|
249
|
+
a_get("/1/lists/statuses.json").
|
250
|
+
with(:query => {:count => "200", :owner_screen_name => "testcli", :slug => "presidents"}).
|
251
|
+
should have_been_made
|
252
|
+
a_get("/1/lists/statuses.json").
|
253
|
+
with(:query => {:count => "200", :max_id => "194546264212385792", :owner_screen_name => "testcli", :slug => "presidents"}).
|
254
|
+
should have_been_made
|
255
|
+
end
|
256
|
+
it "should have the correct output" do
|
257
|
+
@search.list("presidents", "twitter")
|
258
|
+
$stdout.string.should =~ /@bartt/
|
259
|
+
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons\. Lot’s/
|
260
|
+
$stdout.string.should =~ /fun\. Expect improvements in the weeks to come\./
|
261
|
+
end
|
262
|
+
context "--csv" do
|
263
|
+
before do
|
264
|
+
@search.options = @search.options.merge("csv" => true)
|
265
|
+
end
|
266
|
+
it "should output in CSV format" do
|
267
|
+
@search.list("presidents", "twitter")
|
268
|
+
$stdout.string.should == <<-eos
|
269
|
+
ID,Posted at,Screen name,Text
|
270
|
+
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."
|
271
|
+
eos
|
272
|
+
end
|
273
|
+
end
|
274
|
+
context "--long" do
|
275
|
+
before do
|
276
|
+
@search.options = @search.options.merge("long" => true)
|
277
|
+
end
|
278
|
+
it "should output in long format" do
|
279
|
+
@search.list("presidents", "twitter")
|
280
|
+
$stdout.string.should == <<-eos
|
281
|
+
ID Posted at Screen name Text
|
282
|
+
194546727670390784 Apr 23 2011 @bartt @noahlt @gaarf Yup, now owning...
|
283
|
+
eos
|
284
|
+
end
|
285
|
+
end
|
286
|
+
context "with a user passed" do
|
287
|
+
it "should request the correct resource" do
|
288
|
+
@search.list("testcli/presidents", "twitter")
|
289
|
+
a_get("/1/lists/statuses.json").
|
290
|
+
with(:query => {:count => "200", :owner_screen_name => "testcli", :slug => "presidents"}).
|
291
|
+
should have_been_made
|
292
|
+
end
|
293
|
+
context "--id" do
|
294
|
+
before do
|
295
|
+
@search.options = @search.options.merge("id" => true)
|
296
|
+
stub_get("/1/lists/statuses.json").
|
297
|
+
with(:query => {:count => "200", :owner_id => "7505382", :slug => "presidents"}).
|
298
|
+
to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
299
|
+
stub_get("/1/lists/statuses.json").
|
300
|
+
with(:query => {:count => "200", :max_id => "194546264212385792", :owner_id => "7505382", :slug => "presidents"}).
|
301
|
+
to_return(:body => fixture("empty_array.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
302
|
+
end
|
303
|
+
it "should request the correct resource" do
|
304
|
+
@search.list("7505382/presidents", "twitter")
|
305
|
+
a_get("/1/lists/statuses.json").
|
306
|
+
with(:query => {:count => "200", :owner_id => "7505382", :slug => "presidents"}).
|
307
|
+
should have_been_made
|
308
|
+
a_get("/1/lists/statuses.json").
|
309
|
+
with(:query => {:count => "200", :max_id => "194546264212385792", :owner_id => "7505382", :slug => "presidents"}).
|
310
|
+
should have_been_made
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|
314
|
+
context "Twitter is down" do
|
315
|
+
it "should retry 3 times and then raise an error" do
|
316
|
+
stub_get("/1/lists/statuses.json").
|
317
|
+
with(:query => {:count => "200", :owner_screen_name => "testcli", :slug => "presidents"}).
|
318
|
+
to_return(:status => 502)
|
319
|
+
lambda do
|
320
|
+
@search.list("presidents", "twitter")
|
321
|
+
end.should raise_error("Twitter is down or being upgraded.")
|
322
|
+
a_get("/1/lists/statuses.json").
|
323
|
+
with(:query => {:count => "200", :owner_screen_name => "testcli", :slug => "presidents"}).
|
324
|
+
should have_been_made.times(3)
|
325
|
+
end
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
255
329
|
describe "#retweets" do
|
256
330
|
before do
|
257
331
|
stub_get("/1/statuses/retweeted_by_me.json").
|
@@ -273,9 +347,8 @@ ID Posted at Screen name Text
|
|
273
347
|
it "should have the correct output" do
|
274
348
|
@search.retweets("twitter")
|
275
349
|
$stdout.string.should =~ /@bartt/
|
276
|
-
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter
|
350
|
+
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons\. Lot’s/
|
277
351
|
$stdout.string.should =~ /fun\. Expect improvements in the weeks to come\./
|
278
|
-
$stdout.string.should =~ /7 months ago/
|
279
352
|
end
|
280
353
|
context "--csv" do
|
281
354
|
before do
|
@@ -285,7 +358,7 @@ ID Posted at Screen name Text
|
|
285
358
|
@search.retweets("twitter")
|
286
359
|
$stdout.string.should == <<-eos
|
287
360
|
ID,Posted at,Screen name,Text
|
288
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
361
|
+
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."
|
289
362
|
eos
|
290
363
|
end
|
291
364
|
end
|
@@ -337,9 +410,8 @@ ID Posted at Screen name Text
|
|
337
410
|
it "should have the correct output" do
|
338
411
|
@search.timeline("twitter")
|
339
412
|
$stdout.string.should =~ /@bartt/
|
340
|
-
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter
|
413
|
+
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons\. Lot’s/
|
341
414
|
$stdout.string.should =~ /fun\. Expect improvements in the weeks to come\./
|
342
|
-
$stdout.string.should =~ /7 months ago/
|
343
415
|
end
|
344
416
|
context "--csv" do
|
345
417
|
before do
|
@@ -349,7 +421,7 @@ ID Posted at Screen name Text
|
|
349
421
|
@search.timeline("twitter")
|
350
422
|
$stdout.string.should == <<-eos
|
351
423
|
ID,Posted at,Screen name,Text
|
352
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
424
|
+
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."
|
353
425
|
eos
|
354
426
|
end
|
355
427
|
end
|
@@ -401,9 +473,8 @@ ID Posted at Screen name Text
|
|
401
473
|
it "should have the correct output" do
|
402
474
|
@search.user("sferik", "twitter")
|
403
475
|
$stdout.string.should =~ /@bartt/
|
404
|
-
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter
|
476
|
+
$stdout.string.should =~ /@noahlt @gaarf Yup, now owning @twitter -> FB from FE to daemons\. Lot’s/
|
405
477
|
$stdout.string.should =~ /fun\. Expect improvements in the weeks to come\./
|
406
|
-
$stdout.string.should =~ /7 months ago/
|
407
478
|
end
|
408
479
|
context "--csv" do
|
409
480
|
before do
|
@@ -413,7 +484,7 @@ ID Posted at Screen name Text
|
|
413
484
|
@search.user("sferik", "twitter")
|
414
485
|
$stdout.string.should == <<-eos
|
415
486
|
ID,Posted at,Screen name,Text
|
416
|
-
194546727670390784,2011-04-23 22:02:09 +0000,bartt,"@noahlt @gaarf Yup, now owning @twitter
|
487
|
+
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."
|
417
488
|
eos
|
418
489
|
end
|
419
490
|
end
|
data/t.gemspec
CHANGED
@@ -8,10 +8,12 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.add_dependency 'fastercsv', '~> 1.5'
|
9
9
|
gem.add_dependency 'geokit', '~> 1.6'
|
10
10
|
gem.add_dependency 'highline', '~> 1.6'
|
11
|
+
gem.add_dependency 'htmlentities', '~> 4.3'
|
11
12
|
gem.add_dependency 'json', '~> 1.6'
|
12
13
|
gem.add_dependency 'oauth', '~> 0.4'
|
13
14
|
gem.add_dependency 'retryable', '~> 1.2'
|
14
15
|
gem.add_dependency 'thor', ['~> 0.15', '< 2']
|
16
|
+
gem.add_dependency 'tweetstream', '~> 1.1'
|
15
17
|
gem.add_dependency 'twitter', ['~> 2.2', '>= 2.2.5']
|
16
18
|
gem.add_dependency 'twitter-text', '~> 1.4'
|
17
19
|
gem.add_development_dependency 'pry'
|