aleksi-rush 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.6
1
+ 0.6.7
@@ -8,6 +8,11 @@
8
8
  # box['/etc/'].search /localhost/ # entire directory
9
9
  # box['/etc/**/*.conf'].search /localhost/ # arbitrary list
10
10
  module Rush::Commands
11
+ def self.included(base)
12
+ base.extend(Rush::ExternalCommands)
13
+ Rush::ExternalCommands::COMMANDS_TO_ADD.each { |command| base.add_command(command) }
14
+ end
15
+
11
16
  # The entries command must return an array of Rush::Entry items. This
12
17
  # varies by class that it is mixed in to.
13
18
  def entries
@@ -41,15 +46,17 @@ module Rush::Commands
41
46
  end
42
47
  end
43
48
 
44
- # Invoke vi on one or more files - only works locally.
45
- def vi(*args)
46
- names = entries.map { |f| f.quoted_path }.join(' ')
47
- system "vim #{names} #{args.join(' ')}"
48
- end
49
+ end
49
50
 
50
- # Invoke TextMate on one or more files - only works locally.
51
- def mate(*args)
52
- names = entries.map { |f| f.quoted_path }.join(' ')
53
- system "mate #{names} #{args.join(' ')}"
51
+ module Rush::ExternalCommands
52
+ COMMANDS_TO_ADD = [:vim, :mate, :kate, :gedit]
53
+
54
+ def add_command(command)
55
+ if system("which #{command} > /dev/null 2>&1")
56
+ define_method(command) do |*args|
57
+ names = entries.map { |f| f.quoted_path }.join(' ')
58
+ system("#{command} #{args.join(' ')} #{names}")
59
+ end
60
+ end
54
61
  end
55
62
  end
@@ -349,7 +349,7 @@ class Rush::Connection::Local
349
349
  def close_all_descriptors(keep_open = [])
350
350
  3.upto(256) do |fd|
351
351
  next if keep_open.include?(fd)
352
- IO::new(fd).close rescue nil
352
+ IO::new(fd, "r").close rescue nil
353
353
  end
354
354
  end
355
355
 
@@ -370,10 +370,10 @@ class Rush::Connection::Local
370
370
  when 'destroy' then destroy(params[:full_path])
371
371
  when 'purge' then purge(params[:full_path])
372
372
  when 'create_dir' then create_dir(params[:full_path])
373
- when 'rename' then rename(params[:path], params[:name], params[:new_name], params[:force])
374
- when 'copy' then copy(params[:src], params[:dst], params[:force])
373
+ when 'rename' then rename(params[:path], params[:name], params[:new_name], !!params[:force])
374
+ when 'copy' then copy(params[:src], params[:dst], !!params[:force])
375
375
  when 'read_archive' then read_archive(params[:full_path])
376
- when 'write_archive' then write_archive(params[:payload], params[:dir], params[:force])
376
+ when 'write_archive' then write_archive(params[:payload], params[:dir], !!params[:force])
377
377
  when 'index' then index(params[:base_path], params[:glob]).join("\n") + "\n"
378
378
  when 'stat' then YAML.dump(stat(params[:full_path]))
379
379
  when 'set_access' then set_access(params[:full_path], Rush::Access.from_hash(params))
@@ -44,4 +44,12 @@ describe Rush::Commands do
44
44
  it "counts lines of the contained files" do
45
45
  @dir.files.line_count.should == 2
46
46
  end
47
+
48
+ it "adds external commands when mixed-in" do
49
+ class SomeNewClass; include Rush::Commands; end
50
+ obj = SomeNewClass.new
51
+ Rush::ExternalCommands::COMMANDS_TO_ADD.each do |command|
52
+ obj.should respond_to(command) if system("which #{command} > /dev/null 2>&1")
53
+ end
54
+ end
47
55
  end
@@ -43,12 +43,12 @@ describe Rush::Connection::Local do
43
43
  end
44
44
 
45
45
  it "receive -> rename(path, name, new_name)" do
46
- @con.should_receive(:rename).with('path', 'name', 'new_name')
46
+ @con.should_receive(:rename).with('path', 'name', 'new_name', false)
47
47
  @con.receive(:action => 'rename', :path => 'path', :name => 'name', :new_name => 'new_name')
48
48
  end
49
49
 
50
50
  it "receive -> copy(src, dst)" do
51
- @con.should_receive(:copy).with('src', 'dst')
51
+ @con.should_receive(:copy).with('src', 'dst', false)
52
52
  @con.receive(:action => 'copy', :src => 'src', :dst => 'dst')
53
53
  end
54
54
 
@@ -58,7 +58,7 @@ describe Rush::Connection::Local do
58
58
  end
59
59
 
60
60
  it "receive -> write_archive(archive, dir)" do
61
- @con.should_receive(:write_archive).with('archive', 'dir')
61
+ @con.should_receive(:write_archive).with('archive', 'dir', false)
62
62
  @con.receive(:action => 'write_archive', :dir => 'dir', :payload => 'archive')
63
63
  end
64
64
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 6
8
- - 6
9
- version: 0.6.6
8
+ - 7
9
+ version: 0.6.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Adam Wiggins, Aleksey Palazhchenko
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-10 00:00:00 +03:00
17
+ date: 2010-04-04 00:00:00 +04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -119,24 +119,24 @@ signing_key:
119
119
  specification_version: 3
120
120
  summary: A Ruby replacement for bash+ssh.
121
121
  test_files:
122
- - spec/string_ext_spec.rb
123
- - spec/box_spec.rb
124
- - spec/entry_spec.rb
125
- - spec/shell_spec.rb
126
- - spec/process_spec.rb
127
- - spec/process_set_spec.rb
128
- - spec/local_spec.rb
129
- - spec/file_spec.rb
122
+ - spec/access_spec.rb
130
123
  - spec/array_ext_spec.rb
124
+ - spec/base.rb
125
+ - spec/box_spec.rb
126
+ - spec/commands_spec.rb
131
127
  - spec/config_spec.rb
132
128
  - spec/dir_spec.rb
133
- - spec/base.rb
134
- - spec/fixnum_ext_spec.rb
135
- - spec/ssh_tunnel_spec.rb
136
- - spec/access_spec.rb
137
- - spec/find_by_spec.rb
138
129
  - spec/embeddable_shell_spec.rb
130
+ - spec/entry_spec.rb
131
+ - spec/file_spec.rb
132
+ - spec/find_by_spec.rb
133
+ - spec/fixnum_ext_spec.rb
134
+ - spec/local_spec.rb
135
+ - spec/process_set_spec.rb
136
+ - spec/process_spec.rb
139
137
  - spec/remote_spec.rb
140
- - spec/commands_spec.rb
141
- - spec/search_results_spec.rb
142
138
  - spec/rush_spec.rb
139
+ - spec/search_results_spec.rb
140
+ - spec/shell_spec.rb
141
+ - spec/ssh_tunnel_spec.rb
142
+ - spec/string_ext_spec.rb