earthquake 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  Earthquake
2
2
  ====
3
3
 
4
- Terminal-based Twitter Client with Streaming API.
5
- It supports only Ruby 1.9.
4
+ Terminal-based Twitter Client with Streaming API support.
5
+ Only supports Ruby 1.9.
6
6
 
7
7
  Homepage: [https://github.com/jugyo/earthquake](https://github.com/jugyo/earthquake)
8
8
  Twitter: [http://twitter.com/earthquakegem](http://twitter.com/earthquakegem)
@@ -16,16 +16,16 @@ Slide: [http://www.slideshare.net/jugyo/earthquakegem](http://www.slideshare.net
16
16
  Features
17
17
  ----
18
18
 
19
- * You can use Twitter entirely in your Terminal.
20
- * You can receive data in real time with Streaming API.
21
- * You can easily extend by using Ruby.
19
+ * Use Twitter entirely in your Terminal.
20
+ * Receive data in real time with Streaming API.
21
+ * Easily extend using Ruby.
22
22
 
23
23
  Install
24
24
  ----
25
25
 
26
26
  $ gem install earthquake
27
27
 
28
- **Ubuntu:** The EventMachine needs the package libssl-dev.
28
+ **Ubuntu:** EventMachine needs the package libssl-dev.
29
29
 
30
30
  $ sudo apt-get install libssl-dev
31
31
 
@@ -102,28 +102,27 @@ Commands
102
102
 
103
103
  ⚡ :alias rt retweet
104
104
 
105
- And there are more commands!
105
+ And more!
106
106
 
107
107
  Configuration
108
108
  ----
109
109
 
110
- The default earthquake director is ~/.earthquake.
110
+ The default earthquake directory is ~/.earthquake.
111
111
 
112
112
  The config file is **~/.earthquake/config**.
113
113
 
114
114
  ### Changing the earthquake directory
115
115
 
116
- You can change the directory at launch as below:
116
+ You can change the directory at launch by entering a directory as an argument. For example:
117
117
 
118
118
  $ earthquake ~/.earthquake_foo
119
119
 
120
120
  ### Changing the colors for user name
121
121
 
122
122
  # ~/.earthquake/config
123
+ # For example, to exclude blue:
123
124
  Earthquake.config[:colors] = (31..36).to_a - [34]
124
125
 
125
- Blue is excluded.
126
-
127
126
  ### Changing the color scheme
128
127
 
129
128
  # ~/.earthquake/config
@@ -141,7 +140,7 @@ Blue is excluded.
141
140
 
142
141
  ### HTTP proxy support
143
142
 
144
- Please set environment variable *http_proxy* if you want earthquake to use http proxy.
143
+ Please set environment variable *http_proxy* if you want earthquake to use an http proxy.
145
144
 
146
145
  Desktop Notifications
147
146
  ----
@@ -161,9 +160,9 @@ You can try it by using the :eval command:
161
160
  Plugins
162
161
  ----
163
162
 
164
- see [https://github.com/jugyo/earthquake/wiki](https://github.com/jugyo/earthquake/wiki)
163
+ See [https://github.com/jugyo/earthquake/wiki](https://github.com/jugyo/earthquake/wiki)
165
164
 
166
- Making Plugin
165
+ Making Plugins
167
166
  ----
168
167
 
169
168
  **~/.earthquake/plugin** is the directory for plugins.
@@ -188,7 +187,7 @@ The block that is specified for Earthquake.init will be reloaded at any command
188
187
  end
189
188
  end
190
189
 
191
- The 'm' is a MatchData.
190
+ 'm' is a [http://www.ruby-doc.org/core/classes/MatchData.html](MatchData) object.
192
191
 
193
192
  #### Using regexp:
194
193
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.4
1
+ 0.7.5
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{earthquake}
8
- s.version = "0.7.3"
8
+ s.version = "0.7.5"
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 = %q{2011-06-18}
12
+ s.date = %q{2011-07-22}
13
13
  s.default_executable = %q{earthquake}
14
14
  s.description = %q{Twitter Client on Terminal with Twitter Streaming API.}
15
15
  s.email = %q{jugyo.org@gmail.com}
@@ -206,9 +206,13 @@ Earthquake.init do
206
206
  end
207
207
  end
208
208
 
209
- command %r|^:open\s+(\w+)$|, :as => :open do |m|
210
- url = "https://twitter.com/#{m[1]}"
211
- puts "Open: #{url}".c(:info)
209
+ command :browse do |m|
210
+ url = case m[1]
211
+ when /^\d+$/
212
+ "https://twitter.com/#{twitter.status(m[1])['user']['screen_name']}/status/#{m[1]}"
213
+ else
214
+ "https://twitter.com/#{m[1][/[^'"]+/]}"
215
+ end
212
216
  browse url
213
217
  end
214
218
 
@@ -248,10 +252,11 @@ Earthquake.init do
248
252
  end
249
253
 
250
254
  command :edit_config do
251
- system ENV["EDITOR"] + " #{config[:file]}"
255
+ editor = ENV["EDITOR"] || 'vim'
256
+ system "#{editor} #{config[:file]}"
252
257
  end
253
258
 
254
- command %r|^:alias\s+:?(\w+)\s+:?(\w+)|, :as => :alias do |m|
259
+ command %r|^:alias\s+?(:\w+)\s+(.+)|, :as => :alias do |m|
255
260
  alias_command m[1], m[2]
256
261
  end
257
262
  end
@@ -182,8 +182,14 @@ module Earthquake
182
182
 
183
183
  def restore_history
184
184
  history_file = File.join(config[:dir], 'history')
185
- if File.exists?(history_file)
186
- File.read(history_file).split(/\n/).each { |line| Readline::HISTORY << line }
185
+ begin
186
+ File.read(history_file, :encoding => "BINARY").
187
+ encode!(:invalid => :replace, :undef => :replace).
188
+ split(/\n/).
189
+ each { |line| Readline::HISTORY << line }
190
+ rescue Errno::ENOENT
191
+ rescue Errno::EACCES => e
192
+ error(e)
187
193
  end
188
194
  end
189
195
 
@@ -216,12 +222,12 @@ module Earthquake
216
222
  title = args.delete(:title)
217
223
  message = message.is_a?(String) ? message : message.inspect
218
224
  # FIXME: Escaping should be done at Notify.notify
219
- Notify.notify title, message.e, args
225
+ Notify.notify title, message.e
220
226
  end
221
227
  alias_method :n, :notify
222
228
 
223
229
  def browse(url)
224
- Launchy::Browser.run(url)
230
+ Launchy.open(url)
225
231
  end
226
232
  end
227
233
 
@@ -115,7 +115,7 @@ module Earthquake
115
115
 
116
116
  completion do |text|
117
117
  regexp = /^#{Regexp.quote(text)}/
118
- results = (command_names + command_aliases.keys.map {|i| ":#{i}"}).grep(regexp)
118
+ results = (command_names + command_aliases.keys).grep(regexp)
119
119
  history = Readline::HISTORY.reverse_each.take(config[:history_size]) | @tweets_for_completion
120
120
  history.inject(results){|r, line|
121
121
  r | line.split.grep(regexp)
@@ -131,9 +131,9 @@ module Earthquake
131
131
  end
132
132
 
133
133
  input_filter do |text|
134
- if text =~ %r|^:(\w+)|
134
+ if text =~ %r|^(:\w+)|
135
135
  if target = command_aliases[$1]
136
- text = text.sub(%r|^:\w+|, ":#{target}")
136
+ text = text.sub(%r|^:\w+|, target)
137
137
  end
138
138
  text = text.gsub(/\$\w+/) { |var| var2id(var) || var }
139
139
  end
@@ -93,7 +93,7 @@ module Earthquake
93
93
 
94
94
  id = id2var(item["id"])
95
95
 
96
- text = (item["retweeted_status"] && item["truncated"] ? "RT: @#{item["retweeted_status"]["user"]["screen_name"]} #{item["retweeted_status"]["text"]}" : item["text"]).u
96
+ text = (item["retweeted_status"] && item["truncated"] ? "RT @#{item["retweeted_status"]["user"]["screen_name"]}: #{item["retweeted_status"]["text"]}" : item["text"]).u
97
97
  text.gsub!(/\s+/, ' ') unless config[:raw_text]
98
98
  text = text.coloring(/@[0-9A-Za-z_]+/) { |i| color_of(i) }
99
99
  text = text.coloring(/(^#[^\s]+)|(\s+#[^\s]+)/) { |i| color_of(i) }
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: earthquake
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.4
5
+ version: 0.7.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - jugyo
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-18 00:00:00 +09:00
13
+ date: 2011-07-22 00:00:00 +09:00
14
14
  default_executable: earthquake
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency