earthquake 0.9.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b67d0711b61d5ffd750f5e2c32533b376149337c
4
+ data.tar.gz: 99b668a42fc0220f3db351f7e74d6d9fb0e63568
5
+ SHA512:
6
+ metadata.gz: fced4dd9126ee990b0cebdbb81c4ed6f33f72d1ad0aaaf251e04c07da55495cc4ca4ac1713ab4fb1421760f64cbcd2509b4476a67874fee538510fc39f086dcf
7
+ data.tar.gz: 2a5029a51afe819d0236de6bfc8de7d3d82bf71f0da942e48e8a1fcae0da92444dab9a62adfb4a71b62defa3b668dba9580a9f8e31ecf318fded804936885919
data/README.md CHANGED
@@ -28,6 +28,7 @@ You'll need openssl and readline support with your 1.9.2. If you are
28
28
  using rvm you can run:
29
29
 
30
30
  $ rvm pkg install openssl
31
+ $ rvm pkg install readline
31
32
  $ rvm remove 1.9.2
32
33
  $ rvm install 1.9.2 --with-openssl-dir=$HOME/.rvm/usr \
33
34
  --with-readline-dir=$HOME/.rvm/usr
@@ -1,33 +1,19 @@
1
1
  #!/usr/bin/env ruby
2
- require 'slop'
2
+ require 'pathname'
3
+ $:.unshift Pathname.new(__FILE__).realpath.join('../../lib') if $0 == __FILE__
4
+ require 'earthquake/option_parser'
5
+ require "earthquake/version"
3
6
 
4
- argv = ARGV.dup
5
- slop = Slop.new(:strict => true, :help => true)
6
- slop.banner "Usage: earthquake [options] [directory]"
7
- slop.on :d, :debug, 'Enable debug mode'
8
- slop.on :n, :'no-logo', 'No Logo'
9
- slop.on :c, :command, "Invoke a command and exit", true
10
- slop.on :'--no-stream', "No stream mode"
7
+ option_parser = Earthquake::OptionParser.new(ARGV.dup)
8
+ options = nil
11
9
  begin
12
- slop.parse!(argv)
10
+ options = option_parser.parse
11
+ rescue Earthquake::OptionParser::Help
12
+ exit
13
13
  rescue => e
14
14
  puts e
15
15
  exit!
16
16
  end
17
- options = slop.to_hash
18
-
19
- # XXX: work around slop's feature (bug?)
20
- options.each do |key, val|
21
- val = val.nil? ? nil : true if key.to_s =~ /^no-/
22
- options[key] = val
23
- end
24
-
25
- options.delete(:help)
26
- options[:dir] = argv.shift unless argv.empty?
27
-
28
- require 'pathname'
29
- $:.unshift Pathname.new(__FILE__).realpath.join('../../lib') if $0 == __FILE__
30
- require "earthquake/version"
31
17
 
32
18
  command = options.delete(:command)
33
19
  no_logo = options.delete(:'no-logo')
@@ -25,8 +25,8 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency "awesome_print"
26
26
  s.add_runtime_dependency "launchy"
27
27
  s.add_runtime_dependency "oauth"
28
- s.add_runtime_dependency "twitter_oauth", "= 0.4.3"
29
- s.add_runtime_dependency "slop", "~> 3.0"
28
+ s.add_runtime_dependency "jugyo-twitter_oauth", "= 0.5.0.pre5"
29
+ s.add_runtime_dependency "slop", "~> 3.4.0"
30
30
  s.add_development_dependency "rspec", "~> 2.0"
31
31
  s.add_development_dependency "bundler"
32
32
 
@@ -112,6 +112,7 @@ Earthquake.init do
112
112
  return text unless config[:eval_as_ruby_string_for_update]
113
113
  begin
114
114
  text = eval(%|"#{text.gsub('"', '\"')}"|)
115
+ rescue SyntaxError => e
115
116
  rescue Exception => e
116
117
  puts e.message.c(:notice)
117
118
  end
@@ -238,16 +239,14 @@ Earthquake.init do
238
239
  if user.key?("error")
239
240
  user = twitter.status(m[1])["user"] || {}
240
241
  end
241
- ap user.slice(*%w(id screen_name name profile_image_url description url location time_zone lang protected))
242
+ ap user.slice(*%w(id_str screen_name name profile_image_url description url location time_zone lang protected statuses_count followers_count friends_count listed_count created_at))
242
243
  end
243
244
 
244
245
  help :user, "show user info"
245
246
 
246
247
  command :search do |m|
247
248
  search_options = config[:search_options] ? config[:search_options].dup : {}
248
- puts_items twitter.search(m[1], search_options)["results"].each { |s|
249
- s["user"] = {"screen_name" => s["from_user"]}
250
- s["_disable_cache"] = true
249
+ puts_items twitter.search(m[1], search_options)['statuses'].each { |s|
251
250
  words = m[1].split(/\s+/).reject{|x| x[0] =~ /^-|^(OR|AND)$/ }.map{|x|
252
251
  case x
253
252
  when /^from:(.+)/, /^to:(.+)/
@@ -427,7 +426,9 @@ Earthquake.init do
427
426
  help :update_profile_image, "updates profile image from local file path"
428
427
 
429
428
  command %r|^:open\s+(\d+)$|, :as => :open do |m|
430
- matches = URI.extract(twitter.status(m[1])["text"],["http", "https"])
429
+ matches = twitter.status(m[1])['retweeted_status'].nil? ?
430
+ URI.extract(twitter.status(m[1])["text"],["http", "https"]) :
431
+ URI.extract(twitter.status(m[1])['retweeted_status']["text"],["http", "https"])
431
432
  unless matches.empty?
432
433
  matches.each do |match_url|
433
434
  browse match_url
@@ -64,6 +64,8 @@ module Earthquake
64
64
  prompt: '⚡ ',
65
65
  consumer_key: consumer['key'],
66
66
  consumer_secret: consumer['secret'],
67
+ api_version: '1.1',
68
+ secure: true,
67
69
  output_interval: 1,
68
70
  history_size: 1000,
69
71
  api: { :host => 'userstream.twitter.com', :path => '/2/user.json', :ssl => true },
@@ -132,7 +134,7 @@ module Earthquake
132
134
  Readline::HISTORY.pop if buf.empty? || Readline::HISTORY[-1] == Readline::HISTORY[-2]
133
135
  end
134
136
  sync {
135
- reload
137
+ reload unless config[:reload] == false
136
138
  store_history
137
139
  input(buf.strip)
138
140
  }
@@ -246,7 +248,12 @@ module Earthquake
246
248
  end
247
249
 
248
250
  def error(e)
249
- puts "[ERROR] #{e.message}\n #{e.backtrace.join("\n ")}".c(:notice)
251
+ case e
252
+ when Exception
253
+ insert "[ERROR] #{e.message}\n #{e.backtrace.join("\n ")}".c(:notice)
254
+ else
255
+ insert "[ERROR] #{e}".c(:notice)
256
+ end
250
257
  end
251
258
 
252
259
  def notify(message, options = {})
@@ -17,21 +17,6 @@ module Twitter
17
17
  end
18
18
  end
19
19
 
20
- module TwitterOAuth
21
- class Client
22
- [:get, :post, :delete].each { |m| public m }
23
-
24
- private
25
- def consumer
26
- @consumer ||= OAuth::Consumer.new(
27
- @consumer_key,
28
- @consumer_secret,
29
- { :site => 'https://api.twitter.com', :proxy => @proxy }
30
- )
31
- end
32
- end
33
- end
34
-
35
20
  class String
36
21
  def c(*codes)
37
22
  codes = codes.flatten.map { |code|
@@ -63,6 +63,7 @@ module Earthquake
63
63
  end
64
64
  end
65
65
  command_names << ":#{options[:as]}" if options[:as]
66
+ commands.delete_if { |_| _[:pattern] == pattern }
66
67
  commands << {:pattern => pattern, :block => block}
67
68
  else
68
69
  commands.detect {|c| c[:pattern] =~ pattern}
@@ -72,9 +73,9 @@ module Earthquake
72
73
  def confirm(message, type = config[:confirm_type])
73
74
  s = case type
74
75
  when :y
75
- ask("#{message} [Yn] ".u)
76
+ ask(message.u.c(:notice), "[Yn] ")
76
77
  when :n
77
- ask("#{message} [yN] ".u)
78
+ ask(message.u.c(:notice), "[yN] ")
78
79
  else
79
80
  raise "type must be :y or :n"
80
81
  end
@@ -86,9 +87,9 @@ module Earthquake
86
87
  end
87
88
  end
88
89
 
89
- def ask(message)
90
- print message
91
- (STDIN.gets || "").chomp
90
+ def ask(message, prompt)
91
+ puts message
92
+ (Readline.readline(prompt) || "").chomp
92
93
  end
93
94
 
94
95
  def async_e(&block)
@@ -98,7 +99,7 @@ module Earthquake
98
99
  def handle_api_error(&block)
99
100
  result = block.call
100
101
  if result["error"]
101
- notify "[ERROR] #{result["error"]}"
102
+ error result["error"]
102
103
  end
103
104
  end
104
105
  end
@@ -0,0 +1,33 @@
1
+ # encoding: UTF-8
2
+ require 'slop'
3
+
4
+ module Earthquake
5
+ class OptionParser
6
+ Help = Class.new(StandardError)
7
+
8
+ def initialize(argv)
9
+ @argv = argv
10
+ @slop = setup_slop
11
+ end
12
+
13
+ def parse
14
+ @slop.parse!(@argv)
15
+ options = @slop.to_hash
16
+ raise Help if options.delete(:help)
17
+ options[:dir] = @argv.shift unless @argv.empty?
18
+ options
19
+ end
20
+
21
+ private
22
+
23
+ def setup_slop
24
+ Slop.new(:strict => true, :help => true).tap do |s|
25
+ s.banner 'Usage: earthquake [options] [directory]'
26
+ s.on :d, :debug, 'Enable debug mode'
27
+ s.on :n, :'no-logo', 'No Logo'
28
+ s.on :c, :command, 'Invoke a command and exit', :argument => true
29
+ s.on :'--no-stream', 'No stream mode'
30
+ end
31
+ end
32
+ end
33
+ end
@@ -80,7 +80,7 @@ module Earthquake
80
80
  :event => 42,
81
81
  :url => [4, 36]
82
82
  )
83
- config[:raw_text] ||= false
83
+ config[:raw_text] ||= true
84
84
 
85
85
  output :tweet do |item|
86
86
  next unless item["text"]
@@ -100,9 +100,14 @@ module Earthquake
100
100
 
101
101
  id = id2var(item["id"])
102
102
 
103
- text = (item["retweeted_status"] && item["truncated"] ? "RT @#{item["retweeted_status"]["user"]["screen_name"]}: #{item["retweeted_status"]["text"]}" : item["text"]).u
104
- text.gsub!(/\s+/, ' ') unless config[:raw_text]
105
- text.prepend("\n") if config[:raw_text]
103
+ text = (item["retweeted_status"] ? "RT @#{item["retweeted_status"]["user"]["screen_name"]}: #{item["retweeted_status"]["text"]}" : item["text"]).u
104
+ if config[:raw_text] && /\n/ =~ text
105
+ text.prepend("\n")
106
+ text.gsub!(/\n/, "\n " + "|".c(:info))
107
+ text << "\n "
108
+ else
109
+ text.gsub!(/\s+/, ' ')
110
+ end
106
111
  text = text.coloring(/@[0-9A-Za-z_]+/) { |i| color_of(i) }
107
112
  text = text.coloring(/(^#[^\s]+)|(\s+#[^\s]+)/) { |i| color_of(i) }
108
113
  if config[:expand_url]
@@ -5,7 +5,7 @@ module Earthquake
5
5
  end
6
6
 
7
7
  init do
8
- @twitter = TwitterOAuth::Client.new(config.slice(:consumer_key, :consumer_secret, :token, :secret))
8
+ @twitter = TwitterOAuth::Client.new(config.slice(:consumer_key, :consumer_secret, :token, :secret, :api_version, :secure))
9
9
 
10
10
  output do |item|
11
11
  next if item["text"].nil? || item["_disable_cache"]
@@ -31,24 +31,6 @@ module Earthquake
31
31
  end
32
32
  alias_method_chain m, :cache
33
33
  end
34
-
35
- def initialize(options = {})
36
- @consumer_key = options[:consumer_key]
37
- @consumer_secret = options[:consumer_secret]
38
- @token = options[:token]
39
- @secret = options[:secret]
40
- @proxy = ENV['http_proxy']
41
- end
42
-
43
- def consumer
44
- options = { :site => 'http://api.twitter.com' }
45
- options.update( :proxy => @proxy ) if @proxy
46
- @consumer ||= OAuth::Consumer.new(
47
- @consumer_key,
48
- @consumer_secret,
49
- options
50
- )
51
- end
52
34
  end
53
35
  end
54
36
 
@@ -1,3 +1,3 @@
1
1
  module Earthquake
2
- VERSION = '0.9.4'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -0,0 +1,78 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+ require 'earthquake/option_parser'
4
+
5
+ describe Earthquake::OptionParser do
6
+ describe '#parse' do
7
+ it 'should return an hash' do
8
+ options = Earthquake::OptionParser.new([]).parse
9
+ end
10
+
11
+ it 'parses debug option' do
12
+ %w{-d --debug}.each do |opt|
13
+ options = Earthquake::OptionParser.new([opt]).parse
14
+ expect(options[:debug]).to be_true
15
+ end
16
+ end
17
+
18
+ it 'parses no-logo option' do
19
+ %w{-n --no-logo}.each do |opt|
20
+ options = Earthquake::OptionParser.new([opt]).parse
21
+ expect(options[:'no-logo']).to be_true
22
+ end
23
+ end
24
+
25
+ it 'parses command option' do
26
+ %w{-c --command}.each do |opt|
27
+ command = 'dummy'
28
+ options = Earthquake::OptionParser.new([opt, command]).parse
29
+ expect(options[:command]).to eq(command)
30
+ end
31
+ end
32
+
33
+ it 'parses no-stream option' do
34
+ options = Earthquake::OptionParser.new(['--no-stream']).parse
35
+ expect(options[:'no-stream']).to be_true
36
+ end
37
+
38
+ def with_test_output_stream(out, &block)
39
+ old_stdout = $stderr
40
+ $stderr = out
41
+ yield
42
+ out.close
43
+ ensure
44
+ $stderr = old_stdout
45
+ end
46
+
47
+ it 'parses help option' do
48
+ old_stderr = $stderr
49
+ begin
50
+ $stderr = out = StringIO.new
51
+ Earthquake::OptionParser.new(['--help']).parse
52
+ out.close
53
+ expect(out.string).to match(/^Usage: /)
54
+ rescue => e
55
+ # do nothing
56
+ ensure
57
+ $stderr = old_stderr
58
+ end
59
+ end
60
+
61
+ it 'raises exception for invalid option' do
62
+ expect {
63
+ Earthquake::OptionParser.new(['--foo']).parse
64
+ }.to raise_exception
65
+ end
66
+
67
+ it 'removes help option' do
68
+ options= Earthquake::OptionParser.new([]).parse
69
+ expect(options).to_not be_key(:help)
70
+ end
71
+
72
+ it 'adds rest of arguments as :dir' do
73
+ dir = 'foo'
74
+ options= Earthquake::OptionParser.new([dir]).parse
75
+ expect(options[:dir]).to eq(dir)
76
+ end
77
+ end
78
+ end
@@ -1,5 +1,11 @@
1
- require 'rspec'
1
+ # encoding: UTF-8
2
+ require 'rubygems'
3
+
4
+ require 'bundler'
5
+ Bundler.require
6
+
7
+ $: << File.expand_path('../../lib', __FILE__)
2
8
  require 'earthquake'
3
9
 
4
10
  RSpec.configure do |config|
5
- end
11
+ end
metadata CHANGED
@@ -1,164 +1,144 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: earthquake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - jugyo
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-08-07 00:00:00.000000000 Z
11
+ date: 2013-06-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: twitter-stream
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: notify
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: i18n
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: activesupport
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: awesome_print
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: launchy
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: oauth
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
- name: twitter_oauth
112
+ name: jugyo-twitter_oauth
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - '='
132
116
  - !ruby/object:Gem::Version
133
- version: 0.4.3
117
+ version: 0.5.0.pre5
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - '='
140
123
  - !ruby/object:Gem::Version
141
- version: 0.4.3
124
+ version: 0.5.0.pre5
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: slop
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
149
- version: '3.0'
131
+ version: 3.4.0
150
132
  type: :runtime
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ~>
156
137
  - !ruby/object:Gem::Version
157
- version: '3.0'
138
+ version: 3.4.0
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rspec
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ~>
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ~>
172
151
  - !ruby/object:Gem::Version
@@ -174,17 +153,15 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: bundler
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - '>='
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - '>='
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  description: Twitter Client on Terminal with Twitter Streaming API.
@@ -213,37 +190,37 @@ files:
213
190
  - lib/earthquake/help.rb
214
191
  - lib/earthquake/id_var.rb
215
192
  - lib/earthquake/input.rb
193
+ - lib/earthquake/option_parser.rb
216
194
  - lib/earthquake/output.rb
217
195
  - lib/earthquake/twitter.rb
218
196
  - lib/earthquake/version.rb
219
- - spec/earthquake_spec.rb
197
+ - spec/earthquake_option_parser_spec.rb
220
198
  - spec/spec_helper.rb
221
199
  - consumer.yml
222
200
  homepage: https://github.com/jugyo/earthquake
223
201
  licenses: []
202
+ metadata: {}
224
203
  post_install_message:
225
204
  rdoc_options: []
226
205
  require_paths:
227
206
  - lib
228
207
  required_ruby_version: !ruby/object:Gem::Requirement
229
- none: false
230
208
  requirements:
231
- - - ! '>='
209
+ - - '>='
232
210
  - !ruby/object:Gem::Version
233
211
  version: '0'
234
212
  required_rubygems_version: !ruby/object:Gem::Requirement
235
- none: false
236
213
  requirements:
237
- - - ! '>='
214
+ - - '>='
238
215
  - !ruby/object:Gem::Version
239
216
  version: '0'
240
217
  requirements: []
241
218
  rubyforge_project: earthquake
242
- rubygems_version: 1.8.23
219
+ rubygems_version: 2.0.3
243
220
  signing_key:
244
- specification_version: 3
221
+ specification_version: 4
245
222
  summary: Terminal Twitter Client
246
223
  test_files:
247
- - spec/earthquake_spec.rb
224
+ - spec/earthquake_option_parser_spec.rb
248
225
  - spec/spec_helper.rb
249
226
  has_rdoc:
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Earthquake" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
- end