t 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -0
- data/bin/t +16 -13
- data/lib/t.rb +13 -0
- data/lib/t/cli.rb +10 -34
- data/lib/t/cli/list.rb +3 -28
- data/lib/t/cli/search.rb +5 -30
- data/lib/t/collectable.rb +1 -2
- data/lib/t/version.rb +1 -1
- data/spec/cli_spec.rb +1 -0
- data/spec/helper.rb +1 -1
- data/t.gemspec +2 -1
- metadata +46 -38
data/.travis.yml
CHANGED
data/bin/t
CHANGED
@@ -2,41 +2,44 @@
|
|
2
2
|
|
3
3
|
require 't'
|
4
4
|
|
5
|
+
# Output message to $stderr, prefixed with the program name
|
6
|
+
def pute(message="")
|
7
|
+
$stderr.puts "#{$0}: #{message}"
|
8
|
+
end
|
9
|
+
|
5
10
|
begin
|
6
11
|
T::CLI.start(ARGV)
|
7
12
|
rescue Interrupt
|
8
|
-
|
13
|
+
pute "Quitting..."
|
9
14
|
exit 1
|
10
15
|
rescue Twitter::Error::BadRequest => error
|
11
|
-
|
16
|
+
pute error.message
|
12
17
|
exit 400
|
13
18
|
rescue OAuth::Unauthorized
|
14
|
-
|
19
|
+
pute "Authorization failed"
|
15
20
|
exit 401
|
16
21
|
rescue Twitter::Error::Unauthorized => error
|
17
|
-
|
18
|
-
$stderr.puts
|
19
|
-
$stderr.puts "Run `#{$0} authorize --consumer-key=CONSUMER_KEY --consumer-secret=CONSUMER_SECRET` to authorize."
|
22
|
+
pute "#{error.message} Run `#{$0} authorize --consumer-key=CONSUMER_KEY --consumer-secret=CONSUMER_SECRET` to authorize."
|
20
23
|
exit 401
|
21
24
|
rescue Twitter::Error::Forbidden => error
|
22
|
-
|
25
|
+
pute error.message
|
23
26
|
exit 403
|
24
27
|
rescue Twitter::Error::NotFound => error
|
25
|
-
|
28
|
+
pute error.message
|
26
29
|
exit 404
|
27
30
|
rescue Twitter::Error::NotAcceptable => error
|
28
|
-
|
31
|
+
pute error.message
|
29
32
|
exit 406
|
30
33
|
rescue Twitter::Error::EnhanceYourCalm => error
|
31
|
-
|
34
|
+
pute error.message
|
32
35
|
exit 420
|
33
36
|
rescue Twitter::Error::InternalServerError => error
|
34
|
-
|
37
|
+
pute error.message
|
35
38
|
exit 500
|
36
39
|
rescue Twitter::Error::BadGateway => error
|
37
|
-
|
40
|
+
pute error.message
|
38
41
|
exit 502
|
39
42
|
rescue Twitter::Error::ServiceUnavailable => error
|
40
|
-
|
43
|
+
pute error.message
|
41
44
|
exit 503
|
42
45
|
end
|
data/lib/t.rb
CHANGED
@@ -1 +1,14 @@
|
|
1
|
+
require 'active_support/string_inquirer'
|
1
2
|
require 't/cli'
|
3
|
+
|
4
|
+
module T
|
5
|
+
class << self
|
6
|
+
def env
|
7
|
+
@env ||= ActiveSupport::StringInquirer.new("development")
|
8
|
+
end
|
9
|
+
|
10
|
+
def env=(environment)
|
11
|
+
@env = ActiveSupport::StringInquirer.new(environment)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/t/cli.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'action_view'
|
2
2
|
require 'launchy'
|
3
3
|
require 'oauth'
|
4
|
+
require 'pager'
|
4
5
|
require 't/core_ext/string'
|
5
6
|
require 't/rcfile'
|
6
7
|
require 'thor'
|
@@ -12,6 +13,7 @@ module T
|
|
12
13
|
class CLI < Thor
|
13
14
|
include ActionView::Helpers::DateHelper
|
14
15
|
include ActionView::Helpers::NumberHelper
|
16
|
+
include Pager
|
15
17
|
|
16
18
|
DEFAULT_HOST = 'api.twitter.com'
|
17
19
|
DEFAULT_PROTOCOL = 'https'
|
@@ -92,7 +94,7 @@ module T
|
|
92
94
|
def direct_messages
|
93
95
|
defaults = {:include_entities => false}
|
94
96
|
defaults.merge!(:count => options['number']) if options['number']
|
95
|
-
|
97
|
+
page unless T.env.test?
|
96
98
|
client.direct_messages(defaults).each do |direct_message|
|
97
99
|
say "#{direct_message.sender.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{direct_message.text} (#{time_ago_in_words(direct_message.created_at)} ago)"
|
98
100
|
end
|
@@ -136,7 +138,7 @@ module T
|
|
136
138
|
defaults.merge!(:count => options['number']) if options['number']
|
137
139
|
timeline = client.favorites(defaults)
|
138
140
|
timeline.reverse! if options['reverse']
|
139
|
-
|
141
|
+
page unless T.env.test?
|
140
142
|
timeline.each do |status|
|
141
143
|
say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
142
144
|
end
|
@@ -151,7 +153,7 @@ module T
|
|
151
153
|
defaults.merge!(:count => options['number']) if options['number']
|
152
154
|
timeline = client.mentions(defaults)
|
153
155
|
timeline.reverse! if options['reverse']
|
154
|
-
|
156
|
+
page unless T.env.test?
|
155
157
|
timeline.each do |status|
|
156
158
|
say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
157
159
|
end
|
@@ -166,7 +168,7 @@ module T
|
|
166
168
|
end
|
167
169
|
|
168
170
|
desc "reply SCREEN_NAME MESSAGE", "Post your Tweet as a reply directed at another person."
|
169
|
-
method_option :location, :aliases => "-l", :type => :boolean, :default =>
|
171
|
+
method_option :location, :aliases => "-l", :type => :boolean, :default => false
|
170
172
|
def reply(screen_name, message)
|
171
173
|
screen_name = screen_name.strip_at
|
172
174
|
defaults = {:include_entities => false, :trim_user => true}
|
@@ -205,7 +207,7 @@ module T
|
|
205
207
|
def sent_messages
|
206
208
|
defaults = {:include_entities => false}
|
207
209
|
defaults.merge!(:count => options['number']) if options['number']
|
208
|
-
|
210
|
+
page unless T.env.test?
|
209
211
|
client.direct_messages_sent(defaults).each do |direct_message|
|
210
212
|
say "#{direct_message.recipient.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{direct_message.text} (#{time_ago_in_words(direct_message.created_at)} ago)"
|
211
213
|
end
|
@@ -226,7 +228,7 @@ module T
|
|
226
228
|
end
|
227
229
|
|
228
230
|
desc "status MESSAGE", "Post a Tweet."
|
229
|
-
method_option :location, :aliases => "-l", :type => :boolean, :default =>
|
231
|
+
method_option :location, :aliases => "-l", :type => :boolean, :default => false
|
230
232
|
def status(message)
|
231
233
|
defaults = {:include_entities => false, :trim_user => true}
|
232
234
|
defaults.merge!(:lat => location.lat, :long => location.lng) if options['location']
|
@@ -262,7 +264,7 @@ module T
|
|
262
264
|
timeline = client.home_timeline(defaults)
|
263
265
|
end
|
264
266
|
timeline.reverse! if options['reverse']
|
265
|
-
|
267
|
+
page unless T.env.test?
|
266
268
|
timeline.each do |status|
|
267
269
|
say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
268
270
|
end
|
@@ -279,6 +281,7 @@ module T
|
|
279
281
|
def whois(screen_name)
|
280
282
|
screen_name = screen_name.strip_at
|
281
283
|
user = client.user(screen_name, :include_entities => false)
|
284
|
+
say "id: ##{number_with_delimiter(user.id)}"
|
282
285
|
say "#{user.name}, since #{user.created_at.strftime("%b %Y")}."
|
283
286
|
say "bio: #{user.description}"
|
284
287
|
say "location: #{user.location}"
|
@@ -368,32 +371,5 @@ module T
|
|
368
371
|
options['no_ssl'] ? 'http' : DEFAULT_PROTOCOL
|
369
372
|
end
|
370
373
|
|
371
|
-
def run_pager
|
372
|
-
return if RUBY_PLATFORM =~ /win32/
|
373
|
-
return if ENV["T_ENV"] == "test"
|
374
|
-
return unless STDOUT.tty?
|
375
|
-
|
376
|
-
read, write = IO.pipe
|
377
|
-
|
378
|
-
unless Kernel.fork # Child process
|
379
|
-
STDOUT.reopen(write)
|
380
|
-
STDERR.reopen(write) if STDERR.tty?
|
381
|
-
read.close
|
382
|
-
write.close
|
383
|
-
return
|
384
|
-
end
|
385
|
-
|
386
|
-
# Parent process, become pager
|
387
|
-
STDIN.reopen(read)
|
388
|
-
read.close
|
389
|
-
write.close
|
390
|
-
|
391
|
-
ENV['LESS'] = 'FSRX' # Don't page if the input is short enough
|
392
|
-
|
393
|
-
Kernel.select [STDIN] # Wait until we have input before we start the pager
|
394
|
-
pager = ENV['PAGER'] || 'less'
|
395
|
-
exec pager rescue exec "/bin/sh", "-c", pager
|
396
|
-
end
|
397
|
-
|
398
374
|
end
|
399
375
|
end
|
data/lib/t/cli/list.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'action_view'
|
2
|
+
require 'pager'
|
2
3
|
require 't/rcfile'
|
3
4
|
require 'thor'
|
4
5
|
require 'twitter'
|
@@ -7,6 +8,7 @@ module T
|
|
7
8
|
class CLI
|
8
9
|
class List < Thor
|
9
10
|
include ActionView::Helpers::DateHelper
|
11
|
+
include Pager
|
10
12
|
|
11
13
|
DEFAULT_HOST = 'api.twitter.com'
|
12
14
|
DEFAULT_PROTOCOL = 'https'
|
@@ -37,7 +39,7 @@ module T
|
|
37
39
|
defaults.merge!(:per_page => options['number']) if options['number']
|
38
40
|
timeline = client.list_timeline(list_name, defaults)
|
39
41
|
timeline.reverse! if options['reverse']
|
40
|
-
|
42
|
+
page unless T.env.test?
|
41
43
|
timeline.each do |status|
|
42
44
|
say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
43
45
|
end
|
@@ -78,33 +80,6 @@ module T
|
|
78
80
|
parent_options['no_ssl'] ? 'http' : DEFAULT_PROTOCOL
|
79
81
|
end
|
80
82
|
|
81
|
-
def run_pager
|
82
|
-
return if RUBY_PLATFORM =~ /win32/
|
83
|
-
return if ENV["T_ENV"] == "test"
|
84
|
-
return unless STDOUT.tty?
|
85
|
-
|
86
|
-
read, write = IO.pipe
|
87
|
-
|
88
|
-
unless Kernel.fork # Child process
|
89
|
-
STDOUT.reopen(write)
|
90
|
-
STDERR.reopen(write) if STDERR.tty?
|
91
|
-
read.close
|
92
|
-
write.close
|
93
|
-
return
|
94
|
-
end
|
95
|
-
|
96
|
-
# Parent process, become pager
|
97
|
-
STDIN.reopen(read)
|
98
|
-
read.close
|
99
|
-
write.close
|
100
|
-
|
101
|
-
ENV['LESS'] = 'FSRX' # Don't page if the input is short enough
|
102
|
-
|
103
|
-
Kernel.select [STDIN] # Wait until we have input before we start the pager
|
104
|
-
pager = ENV['PAGER'] || 'less'
|
105
|
-
exec pager rescue exec "/bin/sh", "-c", pager
|
106
|
-
end
|
107
|
-
|
108
83
|
end
|
109
84
|
end
|
110
85
|
end
|
data/lib/t/cli/search.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'action_view'
|
2
|
+
require 'pager'
|
2
3
|
require 'retryable'
|
3
4
|
require 't/core_ext/enumerable'
|
4
5
|
require 't/rcfile'
|
@@ -9,6 +10,7 @@ module T
|
|
9
10
|
class CLI
|
10
11
|
class Search < Thor
|
11
12
|
include ActionView::Helpers::DateHelper
|
13
|
+
include Pager
|
12
14
|
|
13
15
|
DEFAULT_HOST = 'api.twitter.com'
|
14
16
|
DEFAULT_PROTOCOL = 'https'
|
@@ -32,7 +34,7 @@ module T
|
|
32
34
|
defaults.merge!(:rpp => options['number']) if options['number']
|
33
35
|
timeline = client.search(query, defaults)
|
34
36
|
timeline.reverse! if options['reverse']
|
35
|
-
|
37
|
+
page unless T.env.test?
|
36
38
|
timeline.each do |status|
|
37
39
|
say "#{status.from_user.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
38
40
|
end
|
@@ -47,7 +49,7 @@ module T
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
50
|
-
|
52
|
+
page unless T.env.test?
|
51
53
|
timeline.flatten.compact.each do |status|
|
52
54
|
say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
53
55
|
end
|
@@ -64,7 +66,7 @@ module T
|
|
64
66
|
end
|
65
67
|
end
|
66
68
|
end
|
67
|
-
|
69
|
+
page unless T.env.test?
|
68
70
|
timeline.flatten.compact.each do |status|
|
69
71
|
say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
|
70
72
|
end
|
@@ -96,33 +98,6 @@ module T
|
|
96
98
|
parent_options['no_ssl'] ? 'http' : DEFAULT_PROTOCOL
|
97
99
|
end
|
98
100
|
|
99
|
-
def run_pager
|
100
|
-
return if RUBY_PLATFORM =~ /win32/
|
101
|
-
return if ENV["T_ENV"] == "test"
|
102
|
-
return unless STDOUT.tty?
|
103
|
-
|
104
|
-
read, write = IO.pipe
|
105
|
-
|
106
|
-
unless Kernel.fork # Child process
|
107
|
-
STDOUT.reopen(write)
|
108
|
-
STDERR.reopen(write) if STDERR.tty?
|
109
|
-
read.close
|
110
|
-
write.close
|
111
|
-
return
|
112
|
-
end
|
113
|
-
|
114
|
-
# Parent process, become pager
|
115
|
-
STDIN.reopen(read)
|
116
|
-
read.close
|
117
|
-
write.close
|
118
|
-
|
119
|
-
ENV['LESS'] = 'FSRX' # Don't page if the input is short enough
|
120
|
-
|
121
|
-
Kernel.select [STDIN] # Wait until we have input before we start the pager
|
122
|
-
pager = ENV['PAGER'] || 'less'
|
123
|
-
exec pager rescue exec "/bin/sh", "-c", pager
|
124
|
-
end
|
125
|
-
|
126
101
|
end
|
127
102
|
end
|
128
103
|
end
|
data/lib/t/collectable.rb
CHANGED
@@ -2,10 +2,9 @@ module T
|
|
2
2
|
module Collectable
|
3
3
|
|
4
4
|
def collect_with_cursor(collection=[], cursor=-1, &block)
|
5
|
-
return collection if cursor == 0
|
6
5
|
object = yield cursor
|
7
6
|
collection += object.collection
|
8
|
-
collect_with_cursor(collection, object.next_cursor)
|
7
|
+
object.next_cursor.zero? ? collection : collect_with_cursor(collection, object.next_cursor)
|
9
8
|
end
|
10
9
|
|
11
10
|
end
|
data/lib/t/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -594,6 +594,7 @@ describe T::CLI do
|
|
594
594
|
it "should have the correct output" do
|
595
595
|
@t.whois("sferik")
|
596
596
|
$stdout.string.should == <<-eos.gsub(/^ {8}/, '')
|
597
|
+
id: #7,505,382
|
597
598
|
Erik Michaels-Ober, since Jul 2007.
|
598
599
|
bio: A mind forever voyaging through strange seas of thought, alone.
|
599
600
|
location: San Francisco
|
data/spec/helper.rb
CHANGED
data/t.gemspec
CHANGED
@@ -7,9 +7,10 @@ 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 'pager', '~> 1.0'
|
10
11
|
gem.add_dependency 'retryable', '~> 1.2'
|
11
12
|
gem.add_dependency 'thor', '~> 0.15.0.rc2'
|
12
|
-
gem.add_dependency 'twitter',
|
13
|
+
gem.add_dependency 'twitter', '~> 2.1'
|
13
14
|
gem.add_dependency 'yajl-ruby', '~> 1.1'
|
14
15
|
gem.add_development_dependency 'pry'
|
15
16
|
gem.add_development_dependency 'rake'
|
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.
|
4
|
+
version: 0.3.1
|
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-
|
12
|
+
date: 2012-01-28 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
16
|
-
requirement: &
|
16
|
+
requirement: &70134698842180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: '4'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *70134698842180
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: activesupport
|
30
|
-
requirement: &
|
30
|
+
requirement: &70134698841380 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -38,10 +38,10 @@ dependencies:
|
|
38
38
|
version: '4'
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
|
-
version_requirements: *
|
41
|
+
version_requirements: *70134698841380
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: launchy
|
44
|
-
requirement: &
|
44
|
+
requirement: &70134698840660 !ruby/object:Gem::Requirement
|
45
45
|
none: false
|
46
46
|
requirements:
|
47
47
|
- - ~>
|
@@ -49,10 +49,10 @@ dependencies:
|
|
49
49
|
version: '2.0'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
|
-
version_requirements: *
|
52
|
+
version_requirements: *70134698840660
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: geokit
|
55
|
-
requirement: &
|
55
|
+
requirement: &70134698840200 !ruby/object:Gem::Requirement
|
56
56
|
none: false
|
57
57
|
requirements:
|
58
58
|
- - ~>
|
@@ -60,10 +60,10 @@ dependencies:
|
|
60
60
|
version: '1.6'
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
|
-
version_requirements: *
|
63
|
+
version_requirements: *70134698840200
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
name: oauth
|
66
|
-
requirement: &
|
66
|
+
requirement: &70134698858160 !ruby/object:Gem::Requirement
|
67
67
|
none: false
|
68
68
|
requirements:
|
69
69
|
- - ~>
|
@@ -71,10 +71,21 @@ dependencies:
|
|
71
71
|
version: '0.4'
|
72
72
|
type: :runtime
|
73
73
|
prerelease: false
|
74
|
-
version_requirements: *
|
74
|
+
version_requirements: *70134698858160
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: pager
|
77
|
+
requirement: &70134698857700 !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
83
|
+
type: :runtime
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: *70134698857700
|
75
86
|
- !ruby/object:Gem::Dependency
|
76
87
|
name: retryable
|
77
|
-
requirement: &
|
88
|
+
requirement: &70134698857240 !ruby/object:Gem::Requirement
|
78
89
|
none: false
|
79
90
|
requirements:
|
80
91
|
- - ~>
|
@@ -82,10 +93,10 @@ dependencies:
|
|
82
93
|
version: '1.2'
|
83
94
|
type: :runtime
|
84
95
|
prerelease: false
|
85
|
-
version_requirements: *
|
96
|
+
version_requirements: *70134698857240
|
86
97
|
- !ruby/object:Gem::Dependency
|
87
98
|
name: thor
|
88
|
-
requirement: &
|
99
|
+
requirement: &70134698856780 !ruby/object:Gem::Requirement
|
89
100
|
none: false
|
90
101
|
requirements:
|
91
102
|
- - ~>
|
@@ -93,24 +104,21 @@ dependencies:
|
|
93
104
|
version: 0.15.0.rc2
|
94
105
|
type: :runtime
|
95
106
|
prerelease: false
|
96
|
-
version_requirements: *
|
107
|
+
version_requirements: *70134698856780
|
97
108
|
- !ruby/object:Gem::Dependency
|
98
109
|
name: twitter
|
99
|
-
requirement: &
|
110
|
+
requirement: &70134698856320 !ruby/object:Gem::Requirement
|
100
111
|
none: false
|
101
112
|
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: 2.0.2
|
105
|
-
- - <
|
113
|
+
- - ~>
|
106
114
|
- !ruby/object:Gem::Version
|
107
|
-
version: '
|
115
|
+
version: '2.1'
|
108
116
|
type: :runtime
|
109
117
|
prerelease: false
|
110
|
-
version_requirements: *
|
118
|
+
version_requirements: *70134698856320
|
111
119
|
- !ruby/object:Gem::Dependency
|
112
120
|
name: yajl-ruby
|
113
|
-
requirement: &
|
121
|
+
requirement: &70134698855860 !ruby/object:Gem::Requirement
|
114
122
|
none: false
|
115
123
|
requirements:
|
116
124
|
- - ~>
|
@@ -118,10 +126,10 @@ dependencies:
|
|
118
126
|
version: '1.1'
|
119
127
|
type: :runtime
|
120
128
|
prerelease: false
|
121
|
-
version_requirements: *
|
129
|
+
version_requirements: *70134698855860
|
122
130
|
- !ruby/object:Gem::Dependency
|
123
131
|
name: pry
|
124
|
-
requirement: &
|
132
|
+
requirement: &70134698855480 !ruby/object:Gem::Requirement
|
125
133
|
none: false
|
126
134
|
requirements:
|
127
135
|
- - ! '>='
|
@@ -129,10 +137,10 @@ dependencies:
|
|
129
137
|
version: '0'
|
130
138
|
type: :development
|
131
139
|
prerelease: false
|
132
|
-
version_requirements: *
|
140
|
+
version_requirements: *70134698855480
|
133
141
|
- !ruby/object:Gem::Dependency
|
134
142
|
name: rake
|
135
|
-
requirement: &
|
143
|
+
requirement: &70134698855020 !ruby/object:Gem::Requirement
|
136
144
|
none: false
|
137
145
|
requirements:
|
138
146
|
- - ! '>='
|
@@ -140,10 +148,10 @@ dependencies:
|
|
140
148
|
version: '0'
|
141
149
|
type: :development
|
142
150
|
prerelease: false
|
143
|
-
version_requirements: *
|
151
|
+
version_requirements: *70134698855020
|
144
152
|
- !ruby/object:Gem::Dependency
|
145
153
|
name: rspec
|
146
|
-
requirement: &
|
154
|
+
requirement: &70134698854600 !ruby/object:Gem::Requirement
|
147
155
|
none: false
|
148
156
|
requirements:
|
149
157
|
- - ! '>='
|
@@ -151,10 +159,10 @@ dependencies:
|
|
151
159
|
version: '0'
|
152
160
|
type: :development
|
153
161
|
prerelease: false
|
154
|
-
version_requirements: *
|
162
|
+
version_requirements: *70134698854600
|
155
163
|
- !ruby/object:Gem::Dependency
|
156
164
|
name: simplecov
|
157
|
-
requirement: &
|
165
|
+
requirement: &70134698854180 !ruby/object:Gem::Requirement
|
158
166
|
none: false
|
159
167
|
requirements:
|
160
168
|
- - ! '>='
|
@@ -162,10 +170,10 @@ dependencies:
|
|
162
170
|
version: '0'
|
163
171
|
type: :development
|
164
172
|
prerelease: false
|
165
|
-
version_requirements: *
|
173
|
+
version_requirements: *70134698854180
|
166
174
|
- !ruby/object:Gem::Dependency
|
167
175
|
name: timecop
|
168
|
-
requirement: &
|
176
|
+
requirement: &70134698853760 !ruby/object:Gem::Requirement
|
169
177
|
none: false
|
170
178
|
requirements:
|
171
179
|
- - ! '>='
|
@@ -173,10 +181,10 @@ dependencies:
|
|
173
181
|
version: '0'
|
174
182
|
type: :development
|
175
183
|
prerelease: false
|
176
|
-
version_requirements: *
|
184
|
+
version_requirements: *70134698853760
|
177
185
|
- !ruby/object:Gem::Dependency
|
178
186
|
name: webmock
|
179
|
-
requirement: &
|
187
|
+
requirement: &70134698853340 !ruby/object:Gem::Requirement
|
180
188
|
none: false
|
181
189
|
requirements:
|
182
190
|
- - ! '>='
|
@@ -184,7 +192,7 @@ dependencies:
|
|
184
192
|
version: '0'
|
185
193
|
type: :development
|
186
194
|
prerelease: false
|
187
|
-
version_requirements: *
|
195
|
+
version_requirements: *70134698853340
|
188
196
|
description: A command-line interface for Twitter.
|
189
197
|
email: sferik@gmail.com
|
190
198
|
executables:
|
@@ -270,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
278
|
version: 1.3.6
|
271
279
|
requirements: []
|
272
280
|
rubyforge_project:
|
273
|
-
rubygems_version: 1.8.
|
281
|
+
rubygems_version: 1.8.15
|
274
282
|
signing_key:
|
275
283
|
specification_version: 3
|
276
284
|
summary: CLI for Twitter
|