earthquake 0.8.3 → 0.8.4

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 CHANGED
@@ -113,6 +113,35 @@ Commands
113
113
 
114
114
  ⚡ :alias :rt :retweet
115
115
 
116
+ ### Tweet Ascii Art
117
+
118
+ ⚡ :update[ENTER]
119
+ [input EOF (e.g. Ctrl+D) at the last]
120
+
121
+
122
+
123
+
124
+ ^D
125
+
126
+ ### View Ascii Art
127
+
128
+ # permanently
129
+ ⚡ :eval config[:raw_text] = true
130
+
131
+ # temporarily(with :status, :recent or :thread etc...)
132
+ ⚡ :aa :status $aa
133
+
134
+ ### Stream Filter Tracking
135
+
136
+ # keywords
137
+ ⚡ :filter keyword earthquakegem twitter
138
+
139
+ # users
140
+ ⚡ :filter user jugyo matsuu
141
+
142
+ # return to normal user stream
143
+ ⚡ :filter off
144
+
116
145
  And more!
117
146
 
118
147
  Configuration
@@ -173,6 +202,11 @@ You can change the directory at launch by entering a directory as an argument. F
173
202
  # ~/.earthquake/config
174
203
  Earthquake.alias_command :rt, :retweet
175
204
 
205
+ ### Default confirmation type
206
+
207
+ # ~/.earthquake/config
208
+ Earthquake.config[:confirm_type] = :n
209
+
176
210
  ### HTTP proxy support
177
211
 
178
212
  Please set environment variable *http_proxy* if you want earthquake to use an http proxy.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.3
1
+ 0.8.4
data/bin/earthquake CHANGED
@@ -6,7 +6,7 @@ slop = Slop.new(:strict => true, :help => true)
6
6
  slop.banner "Usage: earthquake [options] [directory]"
7
7
  slop.on :d, :debug, 'Enable debug mode'
8
8
  slop.on :n, :'no-logo', 'No Logo'
9
- slop.on :c, :command, "Invoke an command and exit", true
9
+ slop.on :c, :command, "Invoke a command and exit", true
10
10
  slop.on :l, :lolize, 'enable lolize (see: https://github.com/miaout17/lolize)'
11
11
  begin
12
12
  slop.parse!(argv)
@@ -14,7 +14,7 @@ rescue => e
14
14
  puts e
15
15
  exit!
16
16
  end
17
- options = slop.to_hash(true)
17
+ options = slop.to_hash
18
18
  options.delete(:help)
19
19
  options[:dir] = argv.shift unless argv.empty?
20
20
 
data/earthquake.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "earthquake"
8
- s.version = "0.8.3"
8
+ s.version = "0.8.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["jugyo"]
12
- s.date = "2011-10-23"
12
+ s.date = "2012-02-03"
13
13
  s.description = "Twitter Client on Terminal with Twitter Streaming API."
14
14
  s.email = "jugyo.org@gmail.com"
15
15
  s.executables = ["earthquake"]
@@ -46,7 +46,7 @@ Gem::Specification.new do |s|
46
46
  s.licenses = ["MIT"]
47
47
  s.require_paths = ["lib"]
48
48
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.1")
49
- s.rubygems_version = "1.8.10"
49
+ s.rubygems_version = "1.8.11"
50
50
  s.summary = "Twitter Client on Terminal."
51
51
  s.test_files = [
52
52
  "spec/earthquake_spec.rb",
@@ -1,6 +1,7 @@
1
1
  # encoding: UTF-8
2
2
  require 'uri'
3
3
  require 'open-uri'
4
+ require 'shellwords'
4
5
  Earthquake.init do
5
6
 
6
7
  # :exit
@@ -63,6 +64,27 @@ Earthquake.init do
63
64
  ⚡ :eval 1 + 1
64
65
  HELP
65
66
 
67
+ command :aa do |m|
68
+ begin
69
+ raw_text, config[:raw_text] = config[:raw_text], true
70
+ input(m[1])
71
+ ensure
72
+ config[:raw_text] = raw_text
73
+ end
74
+ end
75
+
76
+ help :aa, 'executes a command with raw text', <<-HELP
77
+ ⚡ :aa :status $aa
78
+ HELP
79
+
80
+ command %r|^:update$|, :as => :update do
81
+ puts "[input EOF (e.g. Ctrl+D) at the last]".c(:info)
82
+ text = STDIN.gets(nil)
83
+ if text && !text.split.empty?
84
+ async_e{ twitter.update(text) } if confirm("update above AA?")
85
+ end
86
+ end
87
+
66
88
  command :update do |m|
67
89
  async_e { twitter.update(m[1]) } if confirm("update '#{m[1]}'")
68
90
  end
@@ -71,6 +93,16 @@ Earthquake.init do
71
93
  input(":update #{m[0]}")
72
94
  end
73
95
 
96
+ help :update, 'update status', <<-HELP
97
+ ⚡ :update this is my new status
98
+ ⚡ :update[ENTER]
99
+
100
+
101
+
102
+
103
+ ^D
104
+ HELP
105
+
74
106
  command %r|^:reply\s+(\d+)\s+(.*)|, :as => :reply do |m|
75
107
  in_reply_to_status_id = m[1]
76
108
  target = twitter.status(in_reply_to_status_id)
@@ -81,6 +113,12 @@ Earthquake.init do
81
113
  end
82
114
  end
83
115
 
116
+ help :reply, "replys a tweet", <<-HELP
117
+ [$aa] hello world
118
+ ⚡ :reply $aa goodbye world
119
+ ⚡ $aa goodbye world
120
+ HELP
121
+
84
122
  # $xx hi!
85
123
  command %r|^(\$[^\s]+)\s+(.*)$| do |m|
86
124
  input(":reply #{m[1..2].join(' ')}")
@@ -95,23 +133,43 @@ Earthquake.init do
95
133
  input(":status #{m[1]}")
96
134
  end
97
135
 
136
+ help :status, "shows status", <<-HELP
137
+ [$aa] hello world
138
+ ⚡ :status $aa
139
+ [$aa] hello world
140
+ ⚡ $aa
141
+ [$aa] hello world
142
+ HELP
143
+
98
144
  command :delete do |m|
99
145
  tweet = twitter.status(m[1])
100
146
  async_e { twitter.status_destroy(m[1]) } if confirm("delete '#{tweet["text"]}'")
101
147
  end
102
148
 
149
+ help :delete, "deletes status", <<-HELP
150
+ [$aa] hello world
151
+ ⚡ :delete $aa
152
+ delete 'hello world' [Yn] Y
153
+ HELP
154
+
103
155
  command :mentions do
104
156
  puts_items twitter.mentions
105
157
  end
106
158
 
159
+ help :mentions, "show mentions timeline"
160
+
107
161
  command :follow do |m|
108
162
  async_e { twitter.friend(m[1]) }
109
163
  end
110
164
 
165
+ help :follow, "follow user"
166
+
111
167
  command :unfollow do |m|
112
168
  async_e { twitter.unfriend(m[1]) }
113
169
  end
114
170
 
171
+ help :unfollow, "unfollow user"
172
+
115
173
  command :recent do
116
174
  puts_items twitter.home_timeline(:count => config[:recent_count])
117
175
  end
@@ -126,10 +184,22 @@ Earthquake.init do
126
184
  puts_items twitter.list_statuses(m[1], m[2])
127
185
  end
128
186
 
187
+ help :recent, "show recent tweets", <<-HELP
188
+ ⚡ :recent
189
+ ⚡ :recent user
190
+ ⚡ :recent user/list
191
+ HELP
192
+
129
193
  command :user do |m|
130
- ap twitter.show(m[1]).slice(*%w(id screen_name name profile_image_url description url location time_zone lang protected))
194
+ user = twitter.show(m[1])
195
+ if user.key?("error")
196
+ user = twitter.status(m[1])["user"] || {}
197
+ end
198
+ ap user.slice(*%w(id screen_name name profile_image_url description url location time_zone lang protected))
131
199
  end
132
200
 
201
+ help :user, "show user info"
202
+
133
203
  command :search do |m|
134
204
  search_options = config[:search_options] ? config[:search_options].dup : {}
135
205
  puts_items twitter.search(m[1], search_options)["results"].each { |s|
@@ -147,6 +217,49 @@ Earthquake.init do
147
217
  }
148
218
  end
149
219
 
220
+ help :search, "searches term"
221
+
222
+ default_stream = {
223
+ method: "POST",
224
+ host: "userstream.twitter.com",
225
+ path: "/2/user.json",
226
+ ssl: true,
227
+ }
228
+
229
+ filter_stream = {
230
+ method: "POST",
231
+ host: "stream.twitter.com",
232
+ path: "/1/statuses/filter.json",
233
+ ssl: true,
234
+ }
235
+
236
+ command %r!^:filter off$!, as: :filter do
237
+ config[:api] = default_stream
238
+ reconnect
239
+ end
240
+
241
+ command %r!^:filter keyword (.*)$!, as: :filter do |m|
242
+ keywords = Shellwords.split(m[1])
243
+ config[:api] = filter_stream.merge(filters: keywords)
244
+ reconnect
245
+ end
246
+
247
+ command %r!:filter user (.*)$!, as: :filter do |m|
248
+ users = m[1].split.map{|user|
249
+ twitter.show(user)["id"]
250
+ }.compact.join(",")
251
+ unless users.empty?
252
+ config[:api] = filter_stream.merge(params: {follow: users})
253
+ reconnect
254
+ end
255
+ end
256
+
257
+ help :filter, "manages filters", <<-HELP
258
+ ⚡ :filter off
259
+ ⚡ :filter keyword annoyingsubject
260
+ ⚡ :filter user annoyinguser
261
+ HELP
262
+
150
263
  command %r|^:retweet\s+(\d+)$|, :as => :retweet do |m|
151
264
  target = twitter.status(m[1])
152
265
  if confirm("retweet 'RT @#{target["user"]["screen_name"]}: #{target["text"]}'")
@@ -162,6 +275,11 @@ Earthquake.init do
162
275
  end
163
276
  end
164
277
 
278
+ help :retweet, "retweets or quote status", <<-HELP
279
+ ⚡ :retweet $aa
280
+ ⚡ :retweet $aa // LOL
281
+ HELP
282
+
165
283
  command :favorite do |m|
166
284
  tweet = twitter.status(m[1])
167
285
  if confirm("favorite '#{tweet["user"]["screen_name"]}: #{tweet["text"]}'")
@@ -169,6 +287,8 @@ Earthquake.init do
169
287
  end
170
288
  end
171
289
 
290
+ help :favorite, "marks status as favorite"
291
+
172
292
  command :unfavorite do |m|
173
293
  tweet = twitter.status(m[1])
174
294
  if confirm("unfavorite '#{tweet["user"]["screen_name"]}: #{tweet["text"]}'")
@@ -176,30 +296,44 @@ Earthquake.init do
176
296
  end
177
297
  end
178
298
 
299
+ help :unfavorite, "unmarks status as favorite"
300
+
179
301
  command :retweeted_by_me do
180
302
  puts_items twitter.retweeted_by_me
181
303
  end
182
304
 
305
+ help :retweeted_by_me, "shows the latest retweets you made"
306
+
183
307
  command :retweeted_to_me do
184
308
  puts_items twitter.retweeted_to_me
185
309
  end
186
310
 
311
+ help :retweeted_to_me, "shows the latest retweets someone you follow made"
312
+
187
313
  command :retweets_of_me do
188
314
  puts_items twitter.retweets_of_me
189
315
  end
190
316
 
317
+ help :retweets_of_me, "shows your latest status somebody retweeted"
318
+
191
319
  command :block do |m|
192
320
  async_e { twitter.block(m[1]) }
193
321
  end
194
322
 
323
+ help :block, "blocks user"
324
+
195
325
  command :unblock do |m|
196
326
  async_e { twitter.unblock(m[1]) }
197
327
  end
198
328
 
329
+ help :unblock, "unblocks user"
330
+
199
331
  command :report_spam do |m|
200
332
  async_e { twitter.report_spam(m[1]) }
201
333
  end
202
334
 
335
+ help :report_spam, "blocks user and report as spam"
336
+
203
337
  command :messages do
204
338
  puts_items twitter.messages.each { |s|
205
339
  s["user"] = {"screen_name" => s["sender_screen_name"]}
@@ -207,6 +341,8 @@ Earthquake.init do
207
341
  }
208
342
  end
209
343
 
344
+ help :messages, "list direct messages received"
345
+
210
346
  command :sent_messages do
211
347
  puts_items twitter.sent_messages.each { |s|
212
348
  s["user"] = {"screen_name" => s["sender_screen_name"]}
@@ -214,10 +350,14 @@ Earthquake.init do
214
350
  }
215
351
  end
216
352
 
353
+ help :sent_messages, "list direct messages sent"
354
+
217
355
  command %r|^:message (\w+)\s+(.*)|, :as => :message do |m|
218
356
  async_e { twitter.message(*m[1, 2]) } if confirm("message '#{m[2]}' to @#{m[1]}")
219
357
  end
220
358
 
359
+ help :message, "sent a direct message"
360
+
221
361
  command :reconnect do
222
362
  reconnect
223
363
  end
@@ -234,19 +374,28 @@ Earthquake.init do
234
374
  }
235
375
  end
236
376
 
377
+ help :thread, "displays conversation thread"
378
+
237
379
  command :update_profile_image do |m|
238
380
  image_path = File.expand_path(m[1].gsub('\\', ''))
239
381
  async_e { twitter.update_profile_image(File.open(image_path, 'rb')) }
240
382
  end
241
383
 
384
+ help :update_profile_image, "updates profile image from local file path"
385
+
242
386
  command %r|^:open\s+(\d+)$|, :as => :open do |m|
243
- if match = twitter.status(m[1])["text"].match(URI.regexp(["http", "https"]))
244
- browse match[0]
387
+ matches = URI.extract(twitter.status(m[1])["text"],["http", "https"])
388
+ unless matches.empty?
389
+ matches.each do |match_url|
390
+ browse match_url
391
+ end
245
392
  else
246
393
  puts "no link found".c(41)
247
394
  end
248
395
  end
249
396
 
397
+ help :open, "opens all links in a tweet"
398
+
250
399
  command :browse do |m|
251
400
  url = case m[1]
252
401
  when /^\d+$/
@@ -257,16 +406,32 @@ Earthquake.init do
257
406
  browse url
258
407
  end
259
408
 
409
+ help :browse, "opens the browser on a tweet or a user", <<-HELP
410
+ ⚡ :browse $aa
411
+ ⚡ :browse username
412
+ HELP
413
+
260
414
  command :sh do
261
415
  system ENV["SHELL"] || 'sh'
262
416
  end
263
417
 
264
- command :'!' do |m|
265
- system eval("\"#{m[1]}\"").to_s
418
+ help :sh, "opens a shell"
419
+
420
+ command %r|:!(.+)| do |m|
421
+ command = m[1].strip
422
+ puts "`#{command}`"
423
+ system eval("\"#{command}\"").to_s
266
424
  end
267
425
 
268
426
  command :plugin_install do |m|
269
427
  uri = URI.parse(m[1])
428
+ if uri.host == "t.co"
429
+ begin
430
+ open(uri, redirect: false)
431
+ rescue OpenURI::HTTPRedirect => e
432
+ uri = URI.parse(e.io.meta["location"])
433
+ end
434
+ end
270
435
  unless uri.host == "gist.github.com"
271
436
  puts "the host must be gist.github.com".c(41)
272
437
  else
@@ -285,23 +450,39 @@ Earthquake.init do
285
450
  if confirm("Install to '#{filepath}'?")
286
451
  File.open(File.join(config[:plugin_dir], filename), 'w') do |file|
287
452
  file << raw
288
- file << "\n# #{m[1]}"
453
+ file << "\n# #{uri}\n"
289
454
  end
290
455
  reload
291
456
  end
292
457
  end
293
458
  end
294
459
 
460
+ help :plugin_install, "installs a plugin from gist.github.com"
461
+
295
462
  command :edit_config do
296
463
  editor = ENV["EDITOR"] || 'vim'
297
464
  system "#{editor} #{config[:file]}"
298
465
  end
299
466
 
467
+ help :edit_config, "edit your config; note that changes may require to :restart"
468
+
300
469
  command %r|^:alias\s+?(:\w+)\s+(.+)|, :as => :alias do |m|
301
470
  alias_command m[1], m[2]
302
471
  end
303
472
 
473
+ help :alias, "creates a new command aliasing to an existing one", <<-HELP
474
+ ⚡ :alias :rt :retweet
475
+ HELP
476
+
477
+ command :aliases do
478
+ ap command_aliases
479
+ end
480
+
481
+ help :aliases, "shows aliases"
482
+
304
483
  command :reauthorize do
305
484
  get_access_token
306
485
  end
486
+
487
+ help :reauthorize, "prompts for new oauth credentials"
307
488
  end
@@ -59,6 +59,8 @@ module Earthquake
59
59
  config[:output_interval] ||= 1
60
60
  config[:history_size] ||= 1000
61
61
  config[:api] ||= { :host => 'userstream.twitter.com', :path => '/2/user.json', :ssl => true }
62
+ config[:confirm_type] ||= :y
63
+ config[:expand_url] ||= false
62
64
 
63
65
  [config[:dir], config[:plugin_dir]].each do |dir|
64
66
  unless File.exists?(dir)
@@ -32,7 +32,9 @@ module Earthquake
32
32
  end
33
33
 
34
34
  def alias_command(name, target)
35
- command_aliases[name.to_s] = target.to_s
35
+ name = name.is_a?(Symbol) ? ":#{name}" : name.to_s
36
+ target = target.is_a?(Symbol) ? ":#{target}" : target.to_s
37
+ command_aliases[name] = target
36
38
  end
37
39
 
38
40
  def input(text)
@@ -67,14 +69,20 @@ module Earthquake
67
69
  end
68
70
  end
69
71
 
70
- def confirm(message, type = :y)
71
- case type
72
- when :y
73
- return !(ask("#{message} [Yn] ".u) =~ /^n$/i)
74
- when :n
75
- return !!(ask("#{message} [yN] ".u) =~ /^y$/i)
72
+ def confirm(message, type = config[:confirm_type])
73
+ s = case type
74
+ when :y
75
+ ask("#{message} [Yn] ".u)
76
+ when :n
77
+ ask("#{message} [yN] ".u)
78
+ else
79
+ raise "type must be :y or :n"
80
+ end
81
+ s = type.to_s if s.empty?
82
+ if m = s.match(/^[yn]$/i)
83
+ return m[0].downcase == 'y'
76
84
  else
77
- raise "type must be :y or :n"
85
+ confirm(message, type)
78
86
  end
79
87
  end
80
88
 
@@ -117,6 +125,7 @@ module Earthquake
117
125
  completion do |text|
118
126
  regexp = /^#{Regexp.quote(text)}/
119
127
  results = (command_names + command_aliases.keys).grep(regexp)
128
+ next results if text.start_with?(?:) and (Readline.point rescue nil) == text.size
120
129
  history = Readline::HISTORY.reverse_each.take(config[:history_size]) | @tweets_for_completion
121
130
  history.inject(results){|r, line|
122
131
  r | line.split.grep(regexp)
@@ -102,8 +102,20 @@ module Earthquake
102
102
 
103
103
  text = (item["retweeted_status"] && item["truncated"] ? "RT @#{item["retweeted_status"]["user"]["screen_name"]}: #{item["retweeted_status"]["text"]}" : item["text"]).u
104
104
  text.gsub!(/\s+/, ' ') unless config[:raw_text]
105
+ text.prepend("\n") if config[:raw_text]
105
106
  text = text.coloring(/@[0-9A-Za-z_]+/) { |i| color_of(i) }
106
107
  text = text.coloring(/(^#[^\s]+)|(\s+#[^\s]+)/) { |i| color_of(i) }
108
+ if config[:expand_url]
109
+ entities = (item["retweeted_status"] && item["truncated"]) ? item["retweeted_status"]["entities"] : item["entities"]
110
+ if entities
111
+ entities.values_at("urls", "media").flatten.compact.each do |entity|
112
+ url, expanded_url = entity.values_at("url", "expanded_url")
113
+ if url && expanded_url
114
+ text = text.sub(url, expanded_url)
115
+ end
116
+ end
117
+ end
118
+ end
107
119
  text = text.coloring(URI.regexp(["http", "https"]), :url)
108
120
 
109
121
  if item["_highlights"]
@@ -126,10 +138,20 @@ module Earthquake
126
138
  end
127
139
 
128
140
  output :delete do |item|
129
- if item["delete"] && cache.read("status:#{item["delete"]["status"]["id"]}")
130
- tweet = twitter.status(item["delete"]["status"]["id"])
131
- puts "[delete]".c(:event) +
132
- " #{tweet["user"]["screen_name"]}: #{tweet["text"]}"
141
+ if deleted = item["delete"]
142
+ case
143
+ when deleted.key?("status")
144
+ if tweet = cache.read("status:#{deleted["status"]["id"]}")
145
+ screen_name = tweet["user"]["screen_name"]
146
+ text = tweet["text"]
147
+ else
148
+ next
149
+ end
150
+ when deleted.key?("direct_message")
151
+ screen_name = twitter.info["screen_name"]
152
+ text = "(direct message)"
153
+ end
154
+ puts "%s %s: %s" % ["[delete]".c(:event), screen_name, text]
133
155
  end
134
156
  end
135
157
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: earthquake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
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: 2011-10-23 00:00:00.000000000Z
12
+ date: 2012-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: twitter-stream
16
- requirement: &16920980 !ruby/object:Gem::Requirement
16
+ requirement: &70152961745040 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *16920980
24
+ version_requirements: *70152961745040
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: notify
27
- requirement: &16918480 !ruby/object:Gem::Requirement
27
+ requirement: &70152961734900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *16918480
35
+ version_requirements: *70152961734900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: i18n
38
- requirement: &16916180 !ruby/object:Gem::Requirement
38
+ requirement: &70152961734240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *16916180
46
+ version_requirements: *70152961734240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &16907520 !ruby/object:Gem::Requirement
49
+ requirement: &70152961733620 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *16907520
57
+ version_requirements: *70152961733620
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: awesome_print
60
- requirement: &16904020 !ruby/object:Gem::Requirement
60
+ requirement: &70152961732480 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *16904020
68
+ version_requirements: *70152961732480
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: launchy
71
- requirement: &16901980 !ruby/object:Gem::Requirement
71
+ requirement: &70152961731100 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *16901980
79
+ version_requirements: *70152961731100
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: oauth
82
- requirement: &16899080 !ruby/object:Gem::Requirement
82
+ requirement: &70152961730460 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *16899080
90
+ version_requirements: *70152961730460
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: twitter_oauth
93
- requirement: &16897460 !ruby/object:Gem::Requirement
93
+ requirement: &70152961729340 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - =
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.4.3
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *16897460
101
+ version_requirements: *70152961729340
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: slop
104
- requirement: &16895960 !ruby/object:Gem::Requirement
104
+ requirement: &70152961715140 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *16895960
112
+ version_requirements: *70152961715140
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rspec
115
- requirement: &16893820 !ruby/object:Gem::Requirement
115
+ requirement: &70152961719560 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 2.3.0
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *16893820
123
+ version_requirements: *70152961719560
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: bundler
126
- requirement: &16890560 !ruby/object:Gem::Requirement
126
+ requirement: &70152961717840 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 1.0.0
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *16890560
134
+ version_requirements: *70152961717840
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: jeweler
137
- requirement: &16887700 !ruby/object:Gem::Requirement
137
+ requirement: &70152961716980 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: 1.5.2
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *16887700
145
+ version_requirements: *70152961716980
146
146
  description: Twitter Client on Terminal with Twitter Streaming API.
147
147
  email: jugyo.org@gmail.com
148
148
  executables:
@@ -196,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  version: '0'
197
197
  requirements: []
198
198
  rubyforge_project:
199
- rubygems_version: 1.8.10
199
+ rubygems_version: 1.8.11
200
200
  signing_key:
201
201
  specification_version: 3
202
202
  summary: Twitter Client on Terminal.