rmate 1.5.7 → 1.5.8

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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/README.mdown +8 -5
  3. data/bin/rmate +36 -20
  4. data/lib/rmate.rb +36 -20
  5. data/rmate.gemspec +2 -1
  6. metadata +10 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb01149adffb982c59add526c2f37ff360eb6dfe
4
- data.tar.gz: 00fecc43b47a622770630f875e507d80488bc762
3
+ metadata.gz: df13b1ad905e18aecc8727b1f12d7f3ad3efc0c8
4
+ data.tar.gz: 7011a8c285b498fb9caacd053b5641e203f8201d
5
5
  SHA512:
6
- metadata.gz: 363c38d9acc3897608acead4e1178bb500a386bbac8ad54ae91b45941d9c8fb47c901d878a456cf64cabe9651d0a57a20dbd8a0b07530663ba89fc1171e9dad6
7
- data.tar.gz: 3dce272d71ad359a6bc1afd29d6b4f5e23550f29a63a1d64a0d0246144d2301dfaa411664e2001ee547a518e2e250423dd3052b49149ed60a9d2c36db97bd2c7
6
+ metadata.gz: 74a1b17c25063cad0bda780f83954e9f8af439a29d110b00d68ff1335c63a40c8f90b8290eb2b3628800a8376d440edf20dc1f05aba368c84854f8c4b816b455
7
+ data.tar.gz: b5fa8782db9ed962040cf3f0512fe15f6ca3bde3c6b62e91cb5d8abf08c5d1fc0bbeddee0e6206514ee838a0784dbcf1a08bea799eb96f41db9ae60dd73026fa
@@ -4,6 +4,10 @@ If you wish to activate TextMate from an ssh session you can do so by copying th
4
4
 
5
5
  ssh -R 52698:localhost:52698 user@example.org
6
6
 
7
+ or, if using unix sockets (available with OpenSSH v6.7 and above):
8
+
9
+ ssh -R /home/user/.rmate.socket:localhost:52698 user@example.org
10
+
7
11
  # Install
8
12
 
9
13
  ## Rubygems
@@ -33,16 +37,15 @@ If `~/bin` is not already in your `PATH` then you may want to add something like
33
37
 
34
38
  Call `rmate --help` for a list of options. Default options can be set in `/etc/rmate.rc` or `~/.rmate.rc`, e.g.:
35
39
 
36
- host: auto # prefer host from SSH_CONNECTION over localhost
40
+ host: auto # Prefer host from SSH_CONNECTION over localhost
37
41
  port: 52698
42
+ unixsocket: ~/.rmate.socket # Use this socket file if it exists
38
43
 
39
- You can also set the `RMATE_HOST` and `RMATE_PORT` environment variables.
44
+ You can also set the `RMATE_HOST`, `RMATE_PORT` and `RMATE_UNIXSOCKET` environment variables.
40
45
 
41
46
  For more info see this [blog post about rmate](http://blog.macromates.com/2011/mate-and-rmate/ "TextMate Blog » mate and rmate").
42
47
 
43
48
  # Ports
44
49
 
45
50
  - [Bash](https://github.com/aurora/rmate) by Harald Lapp
46
-
47
-
48
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/textmate/rmate/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
51
+ - [Python](https://github.com/sclukey/rmate-python) by Steven Clukey
data/bin/rmate CHANGED
@@ -11,15 +11,15 @@ require 'yaml'
11
11
  require 'fileutils'
12
12
 
13
13
  module Rmate
14
- DATE = "2014-02-06"
15
- VERSION = "1.5.7"
14
+ DATE = "2015-06-23"
15
+ VERSION = "1.5.8"
16
16
  VERSION_STRING = "rmate version #{Rmate::VERSION} (#{Rmate::DATE})"
17
17
 
18
18
  class Settings
19
- attr_accessor :host, :port, :wait, :force, :verbose, :lines, :names, :types
19
+ attr_accessor :host, :port, :unixsocket, :wait, :force, :verbose, :lines, :names, :types
20
20
 
21
21
  def initialize
22
- @host, @port = 'localhost', 52698
22
+ @host, @port, @unixsocket = 'localhost', 52698, '~/.rmate.socket'
23
23
 
24
24
  @wait = false
25
25
  @force = false
@@ -30,8 +30,9 @@ module Rmate
30
30
 
31
31
  read_disk_settings
32
32
 
33
- @host = ENV['RMATE_HOST'].to_s if ENV.has_key? 'RMATE_HOST'
34
- @port = ENV['RMATE_PORT'].to_i if ENV.has_key? 'RMATE_PORT'
33
+ @host = ENV['RMATE_HOST'].to_s if ENV.has_key? 'RMATE_HOST'
34
+ @port = ENV['RMATE_PORT'].to_i if ENV.has_key? 'RMATE_PORT'
35
+ @unixsocket = ENV['RMATE_UNIXSOCKET'].to_s if ENV.has_key? 'RMATE_UNIXSOCKET'
35
36
 
36
37
  parse_cli_options
37
38
 
@@ -43,22 +44,25 @@ module Rmate
43
44
  file = File.expand_path current_file
44
45
  if File.exist? file
45
46
  params = YAML::load(File.open(file))
46
- @host = params["host"] unless params["host"].nil?
47
- @port = params["port"] unless params["port"].nil?
47
+ @host = params["host"] unless params["host"].nil?
48
+ @port = params["port"] unless params["port"].nil?
49
+ @unixsocket = params["unixsocket"] unless params["unixsocket"].nil?
48
50
  end
49
51
  end
50
52
  end
51
53
 
52
54
  def parse_cli_options
53
55
  OptionParser.new do |o|
54
- o.on( '--host=name', "Connect to host.", "Use 'auto' to detect the host from SSH.", "Defaults to #{@host}.") { |v| @host = v }
55
- o.on('-p', '--port=#', Integer, "Port number to use for connection.", "Defaults to #{@port}.") { |v| @port = v }
56
- o.on('-w', '--[no-]wait', 'Wait for file to be closed by TextMate.') { |v| @wait = v }
57
- o.on('-l', '--line [NUMBER]', 'Place caret on line [NUMBER] after loading file.') { |v| @lines <<= v }
58
- o.on('-m', '--name [NAME]', 'The display name shown in TextMate.') { |v| @names <<= v }
59
- o.on('-t', '--type [TYPE]', 'Treat file as having [TYPE].') { |v| @types <<= v }
60
- o.on('-f', '--force', 'Open even if the file is not writable.') { |v| @force = v }
61
- o.on('-v', '--verbose', 'Verbose logging messages.') { |v| @verbose = v }
56
+ o.on( '--host=name', "Connect to host.", "Use 'auto' to detect the host from SSH.", "Defaults to #{@host}.") { |v| @host = v }
57
+ o.on('-s', '--unixsocket=name', "UNIX socket path.", "Takes precedence over host/port if the file exists", \
58
+ "Default #{@unixsocket}") { |v| @unixsocket = v }
59
+ o.on('-p', '--port=#', Integer, "Port number to use for connection.", "Defaults to #{@port}.") { |v| @port = v }
60
+ o.on('-w', '--[no-]wait', 'Wait for file to be closed by TextMate.') { |v| @wait = v }
61
+ o.on('-l', '--line [NUMBER]', 'Place caret on line [NUMBER] after loading file.') { |v| @lines <<= v }
62
+ o.on('-m', '--name [NAME]', 'The display name shown in TextMate.') { |v| @names <<= v }
63
+ o.on('-t', '--type [TYPE]', 'Treat file as having [TYPE].') { |v| @types <<= v }
64
+ o.on('-f', '--force', 'Open even if the file is not writable.') { |v| @force = v }
65
+ o.on('-v', '--verbose', 'Verbose logging messages.') { |v| @verbose = v }
62
66
  o.on_tail('-h', '--help', 'Show this message.') { puts o; exit }
63
67
  o.on_tail( '--version', 'Show version.') { puts VERSION_STRING; exit }
64
68
  o.parse!
@@ -153,8 +157,20 @@ module Rmate
153
157
  end
154
158
  end
155
159
 
156
- def connect_and_handle_cmds(host, port, cmds)
157
- socket = TCPSocket.new(host, port)
160
+ def connect_and_handle_cmds(host, port, unixsocketpath, cmds)
161
+ socket = nil
162
+ unixsocketpath = File.expand_path(unixsocketpath) unless unixsocketpath.nil?
163
+ if unixsocketpath.nil? || !File.exist?(unixsocketpath)
164
+ $stderr.puts "Using TCP socket to connect: ‘#{host}:#{port}’" if $settings.verbose
165
+ begin
166
+ socket = TCPSocket.new(host, port)
167
+ rescue Exception => e
168
+ abort "Error connecting to ‘#{host}:#{port}’: #{e.message}"
169
+ end
170
+ else
171
+ $stderr.puts "Using UNIX socket to connect: ‘#{unixsocketpath}’" if $settings.verbose
172
+ socket = UNIXSocket.new(unixsocketpath)
173
+ end
158
174
  server_info = socket.readline.chomp
159
175
  $stderr.puts "Connect: ‘#{server_info}’" if $settings.verbose
160
176
 
@@ -204,9 +220,9 @@ end
204
220
 
205
221
  unless $settings.wait
206
222
  pid = fork do
207
- Rmate::connect_and_handle_cmds($settings.host, $settings.port, cmds)
223
+ Rmate::connect_and_handle_cmds($settings.host, $settings.port, $settings.unixsocket, cmds)
208
224
  end
209
225
  Process.detach(pid)
210
226
  else
211
- Rmate::connect_and_handle_cmds($settings.host, $settings.port, cmds)
227
+ Rmate::connect_and_handle_cmds($settings.host, $settings.port, $settings.unixsocket, cmds)
212
228
  end
@@ -11,15 +11,15 @@ require 'yaml'
11
11
  require 'fileutils'
12
12
 
13
13
  module Rmate
14
- DATE = "2014-02-06"
15
- VERSION = "1.5.7"
14
+ DATE = "2015-06-23"
15
+ VERSION = "1.5.8"
16
16
  VERSION_STRING = "rmate version #{Rmate::VERSION} (#{Rmate::DATE})"
17
17
 
18
18
  class Settings
19
- attr_accessor :host, :port, :wait, :force, :verbose, :lines, :names, :types
19
+ attr_accessor :host, :port, :unixsocket, :wait, :force, :verbose, :lines, :names, :types
20
20
 
21
21
  def initialize
22
- @host, @port = 'localhost', 52698
22
+ @host, @port, @unixsocket = 'localhost', 52698, '~/.rmate.socket'
23
23
 
24
24
  @wait = false
25
25
  @force = false
@@ -30,8 +30,9 @@ module Rmate
30
30
 
31
31
  read_disk_settings
32
32
 
33
- @host = ENV['RMATE_HOST'].to_s if ENV.has_key? 'RMATE_HOST'
34
- @port = ENV['RMATE_PORT'].to_i if ENV.has_key? 'RMATE_PORT'
33
+ @host = ENV['RMATE_HOST'].to_s if ENV.has_key? 'RMATE_HOST'
34
+ @port = ENV['RMATE_PORT'].to_i if ENV.has_key? 'RMATE_PORT'
35
+ @unixsocket = ENV['RMATE_UNIXSOCKET'].to_s if ENV.has_key? 'RMATE_UNIXSOCKET'
35
36
 
36
37
  parse_cli_options
37
38
 
@@ -43,22 +44,25 @@ module Rmate
43
44
  file = File.expand_path current_file
44
45
  if File.exist? file
45
46
  params = YAML::load(File.open(file))
46
- @host = params["host"] unless params["host"].nil?
47
- @port = params["port"] unless params["port"].nil?
47
+ @host = params["host"] unless params["host"].nil?
48
+ @port = params["port"] unless params["port"].nil?
49
+ @unixsocket = params["unixsocket"] unless params["unixsocket"].nil?
48
50
  end
49
51
  end
50
52
  end
51
53
 
52
54
  def parse_cli_options
53
55
  OptionParser.new do |o|
54
- o.on( '--host=name', "Connect to host.", "Use 'auto' to detect the host from SSH.", "Defaults to #{@host}.") { |v| @host = v }
55
- o.on('-p', '--port=#', Integer, "Port number to use for connection.", "Defaults to #{@port}.") { |v| @port = v }
56
- o.on('-w', '--[no-]wait', 'Wait for file to be closed by TextMate.') { |v| @wait = v }
57
- o.on('-l', '--line [NUMBER]', 'Place caret on line [NUMBER] after loading file.') { |v| @lines <<= v }
58
- o.on('-m', '--name [NAME]', 'The display name shown in TextMate.') { |v| @names <<= v }
59
- o.on('-t', '--type [TYPE]', 'Treat file as having [TYPE].') { |v| @types <<= v }
60
- o.on('-f', '--force', 'Open even if the file is not writable.') { |v| @force = v }
61
- o.on('-v', '--verbose', 'Verbose logging messages.') { |v| @verbose = v }
56
+ o.on( '--host=name', "Connect to host.", "Use 'auto' to detect the host from SSH.", "Defaults to #{@host}.") { |v| @host = v }
57
+ o.on('-s', '--unixsocket=name', "UNIX socket path.", "Takes precedence over host/port if the file exists", \
58
+ "Default #{@unixsocket}") { |v| @unixsocket = v }
59
+ o.on('-p', '--port=#', Integer, "Port number to use for connection.", "Defaults to #{@port}.") { |v| @port = v }
60
+ o.on('-w', '--[no-]wait', 'Wait for file to be closed by TextMate.') { |v| @wait = v }
61
+ o.on('-l', '--line [NUMBER]', 'Place caret on line [NUMBER] after loading file.') { |v| @lines <<= v }
62
+ o.on('-m', '--name [NAME]', 'The display name shown in TextMate.') { |v| @names <<= v }
63
+ o.on('-t', '--type [TYPE]', 'Treat file as having [TYPE].') { |v| @types <<= v }
64
+ o.on('-f', '--force', 'Open even if the file is not writable.') { |v| @force = v }
65
+ o.on('-v', '--verbose', 'Verbose logging messages.') { |v| @verbose = v }
62
66
  o.on_tail('-h', '--help', 'Show this message.') { puts o; exit }
63
67
  o.on_tail( '--version', 'Show version.') { puts VERSION_STRING; exit }
64
68
  o.parse!
@@ -153,8 +157,20 @@ module Rmate
153
157
  end
154
158
  end
155
159
 
156
- def connect_and_handle_cmds(host, port, cmds)
157
- socket = TCPSocket.new(host, port)
160
+ def connect_and_handle_cmds(host, port, unixsocketpath, cmds)
161
+ socket = nil
162
+ unixsocketpath = File.expand_path(unixsocketpath) unless unixsocketpath.nil?
163
+ if unixsocketpath.nil? || !File.exist?(unixsocketpath)
164
+ $stderr.puts "Using TCP socket to connect: ‘#{host}:#{port}’" if $settings.verbose
165
+ begin
166
+ socket = TCPSocket.new(host, port)
167
+ rescue Exception => e
168
+ abort "Error connecting to ‘#{host}:#{port}’: #{e.message}"
169
+ end
170
+ else
171
+ $stderr.puts "Using UNIX socket to connect: ‘#{unixsocketpath}’" if $settings.verbose
172
+ socket = UNIXSocket.new(unixsocketpath)
173
+ end
158
174
  server_info = socket.readline.chomp
159
175
  $stderr.puts "Connect: ‘#{server_info}’" if $settings.verbose
160
176
 
@@ -204,9 +220,9 @@ end
204
220
 
205
221
  unless $settings.wait
206
222
  pid = fork do
207
- Rmate::connect_and_handle_cmds($settings.host, $settings.port, cmds)
223
+ Rmate::connect_and_handle_cmds($settings.host, $settings.port, $settings.unixsocket, cmds)
208
224
  end
209
225
  Process.detach(pid)
210
226
  else
211
- Rmate::connect_and_handle_cmds($settings.host, $settings.port, cmds)
227
+ Rmate::connect_and_handle_cmds($settings.host, $settings.port, $settings.unixsocket, cmds)
212
228
  end
@@ -9,8 +9,9 @@ Gem::Specification.new do |gem|
9
9
  gem.summary = %q{Edit files from anywhere in TextMate 2 on your local Mac.}
10
10
  gem.email = ['rmate@textmate.org']
11
11
  gem.homepage = 'https://github.com/textmate/rmate/'
12
+ gem.license = 'MIT'
12
13
 
13
14
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
14
15
  gem.files = `git ls-files`.split("\n")
15
- gem.authors = `git log --pretty="format:%an"|sort -u`.split("\n")
16
+ gem.authors = `git log --pretty='format:%an' -- . ':!README*'|sort|uniq -c|sort -k2|sort -srnk1|sed -E 's/^ *[0-9]+ //'`.split("\n")
16
17
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.7
4
+ version: 1.5.8
5
5
  platform: ruby
6
6
  authors:
7
- - Adam Strzelecki
8
- - Alex Ross
9
7
  - Allan Odgaard
8
+ - Alex Ross
10
9
  - Ciarán Walsh
11
- - Curt Sellmer
12
10
  - James Edward Gray II
11
+ - Curt Sellmer
12
+ - OZAWA Sakuro
13
+ - Adam Strzelecki
14
+ - Benjamin Piwowarski
13
15
  - John St. John
14
- - Michael Sheets
15
16
  - Nicolas Ledez
16
- - OZAWA Sakuro
17
17
  - Richard Myers
18
18
  - Rogelio Gudino
19
19
  - Timothy Andrew
@@ -21,7 +21,7 @@ authors:
21
21
  autorequire:
22
22
  bindir: bin
23
23
  cert_chain: []
24
- date: 2014-02-06 00:00:00.000000000 Z
24
+ date: 2015-06-23 00:00:00.000000000 Z
25
25
  dependencies: []
26
26
  description: Remote TextMate
27
27
  email:
@@ -38,7 +38,8 @@ files:
38
38
  - lib/rmate.rb
39
39
  - rmate.gemspec
40
40
  homepage: https://github.com/textmate/rmate/
41
- licenses: []
41
+ licenses:
42
+ - MIT
42
43
  metadata: {}
43
44
  post_install_message:
44
45
  rdoc_options: []
@@ -56,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
57
  version: '0'
57
58
  requirements: []
58
59
  rubyforge_project:
59
- rubygems_version: 2.0.3
60
+ rubygems_version: 2.0.14
60
61
  signing_key:
61
62
  specification_version: 4
62
63
  summary: Edit files from anywhere in TextMate 2 on your local Mac.