rfd 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e3cf16078b9de1442a1222b894e175e5342e6329
4
- data.tar.gz: b370f528cb226975b077330b758d1e7218714d73
3
+ metadata.gz: 73cf32d334a52233e41042d8dad8b7bc1a00d6c0
4
+ data.tar.gz: 7d6eb47271a96ab17bacccfdbe34ffdd81d8f31d
5
5
  SHA512:
6
- metadata.gz: 825059c0b082e92b03fc54d1c7d9cc096b6e8bf3c6df8b8b5201128019db9929c6e449eeaa30299e867f62093fa948a944ae4c21f147ccf3668cc8e21f05fb45
7
- data.tar.gz: 73df368499184e4c48a0652e0f53d23754c52631752d2f18fd77f2dc9bc853e6ba83d540cb434b8b49261c9d034227f0dc590d06b5beaa90b07d068d6c15a0cd
6
+ metadata.gz: c3fe7fbaad753cbb3b466c8736d5a07f23cdedde45251198526883427c3bef2390774cd834009f4a56e9af879ac2bbcdc1fa2ce038b4a4cb645dbdf887344d35
7
+ data.tar.gz: 5a948b9f5d22eaf9e1c75b3d9986ced53237b8f249f837d6c68db4f8ce89c5bcbe18a5598ea60da19cfeaa8bedf6f79b59004e5367b7a53c8a7c1495d2a4f4f5
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'https://rubygems.org'
2
3
 
3
4
  # Specify your gem's dependencies in rfd.gemspec
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'bundler'
2
3
  Bundler::GemHelper.install_tasks
3
4
  require "bundler/gem_tasks"
data/bin/rfd CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  require File.expand_path('../../lib/rfd', __FILE__)
3
4
 
4
5
  rfd = Rfd.start ARGV[0] || '.'
data/lib/rfd.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'curses'
2
3
  require 'fileutils'
3
4
  require 'tmpdir'
@@ -382,10 +383,14 @@ module Rfd
382
383
  # Rename selected files and directories.
383
384
  #
384
385
  # ==== Parameters
385
- # * +pattern+ - / separated Regexp like string
386
+ # * +pattern+ - new filename, or a shash separated Regexp like string
386
387
  def rename(pattern)
387
- from, to = pattern.split '/'
388
- from = Regexp.new from
388
+ from, to = pattern.sub(/^\//, '').sub(/\/$/, '').split '/'
389
+ if to.nil?
390
+ from, to = current_item.name, from
391
+ else
392
+ from = Regexp.new from
393
+ end
389
394
  unless in_zip?
390
395
  selected_items.each do |item|
391
396
  name = item.name.gsub from, to
@@ -507,7 +512,7 @@ module Rfd
507
512
  # Archive selected files and directories into a .zip file.
508
513
  def zip(zipfile_name)
509
514
  return unless zipfile_name
510
- zipfile_name << '.zip' unless zipfile_name.end_with? '.zip'
515
+ zipfile_name += '.zip' unless zipfile_name.end_with? '.zip'
511
516
 
512
517
  Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
513
518
  selected_items.each do |item|
@@ -623,6 +628,12 @@ module Rfd
623
628
  c if (0..255) === c.ord
624
629
  end
625
630
 
631
+ def clear_command_line
632
+ command_line.writeln 0, ""
633
+ command_line.clear
634
+ command_line.noutrefresh
635
+ end
636
+
626
637
  # Accept user input, and directly execute it as a Ruby method call to the controller.
627
638
  #
628
639
  # ==== Parameters
@@ -633,13 +644,11 @@ module Rfd
633
644
  cmd, *args = command_line.get_command(prompt: prompt).split(' ')
634
645
  if cmd && !cmd.empty? && respond_to?(cmd)
635
646
  ret = self.public_send cmd, *args
636
- command_line.clear
637
- command_line.noutrefresh
647
+ clear_command_line
638
648
  ret
639
649
  end
640
650
  rescue Interrupt
641
- command_line.clear
642
- command_line.noutrefresh
651
+ clear_command_line
643
652
  end
644
653
 
645
654
  # Accept user input, and directly execute it in an external shell.
@@ -740,7 +749,7 @@ module Rfd
740
749
  end
741
750
 
742
751
  def expand_path(path)
743
- File.expand_path path.start_with?('/') || path.start_with?('~') ? path : current_dir ? current_dir.join(path) : path
752
+ File.expand_path path.start_with?('/', '~') ? path : current_dir ? current_dir.join(path) : path
744
753
  end
745
754
 
746
755
  def load_item(path: nil, dir: nil, name: nil, stat: nil)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Rfd
2
3
  module Commands
3
4
  # Change permission ("A"ttributes) of selected files and directories.
@@ -230,7 +231,8 @@ module Rfd
230
231
  # Number of times to repeat the next command.
231
232
  (?0..?9).each do |n|
232
233
  define_method(n) do
233
- (@times ||= '') << n
234
+ @times ||= ''
235
+ @times += n
234
236
  end
235
237
  end
236
238
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Rfd
2
3
  class Item
3
4
  include Comparable
@@ -83,9 +84,9 @@ module Rfd
83
84
  def mode
84
85
  @mode ||= begin
85
86
  m = stat.mode
86
- ret = directory? ? 'd' : symlink? ? 'l' : '-'
87
- [(m & 0700) / 64, (m & 070) / 8, m & 07].inject(ret) do |str, s|
88
- str << "#{s & 4 == 4 ? 'r' : '-'}#{s & 2 == 2 ? 'w' : '-'}#{s & 1 == 1 ? 'x' : '-'}"
87
+ ft = directory? ? 'd' : symlink? ? 'l' : '-'
88
+ ret = [(m & 0700) / 64, (m & 070) / 8, m & 07].inject(ft) do |str, s|
89
+ str += "#{s & 4 == 4 ? 'r' : '-'}#{s & 2 == 2 ? 'w' : '-'}#{s & 1 == 1 ? 'x' : '-'}"
89
90
  end
90
91
  if m & 04000 != 0
91
92
  ret[3] = directory? ? 's' : 'S'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'delegate'
2
3
 
3
4
  module Rfd
@@ -19,6 +20,7 @@ module Rfd
19
20
  setpos row, 0
20
21
  clrtoeol
21
22
  self << str
23
+ refresh
22
24
  end
23
25
  end
24
26
 
@@ -145,14 +147,28 @@ module Rfd
145
147
  end
146
148
  end
147
149
 
150
+ def getstr_with_echo
151
+ str = ""
152
+ loop do
153
+ case (c = Curses.getch)
154
+ when 27
155
+ raise Interrupt
156
+ when 10, 13
157
+ break
158
+ else
159
+ self << c
160
+ refresh
161
+ str << c
162
+ end
163
+ end
164
+ str
165
+ end
166
+
148
167
  def get_command(prompt: nil)
149
- Curses.echo
150
168
  startx = prompt ? prompt.size : 1
151
169
  setpos 0, startx
152
- s = getstr
170
+ s = getstr_with_echo
153
171
  "#{prompt[1..-1] if prompt}#{s.strip}"
154
- ensure
155
- Curses.noecho
156
172
  end
157
173
 
158
174
  def show_error(str)
@@ -1,10 +1,11 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
 
5
6
  Gem::Specification.new do |spec|
6
7
  spec.name = "rfd"
7
- spec.version = '0.6.6'
8
+ spec.version = '0.6.7'
8
9
  spec.authors = ["Akira Matsuda"]
9
10
  spec.email = ["ronnie@dio.jp"]
10
11
  spec.description = 'Ruby on Files & Directories'
@@ -20,6 +21,6 @@ Gem::Specification.new do |spec|
20
21
  spec.add_dependency 'curses', '>= 1.0.0'
21
22
  spec.add_dependency 'rubyzip', '>= 1.0.0'
22
23
  spec.add_development_dependency "bundler", "~> 1.3"
23
- spec.add_development_dependency "rake"
24
- spec.add_development_dependency 'rspec'
24
+ spec.add_development_dependency "rake", "< 11.0"
25
+ spec.add_development_dependency 'rspec', "< 2.99"
25
26
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'rfd'
3
4
 
@@ -346,16 +347,18 @@ describe Rfd::Controller do
346
347
  end
347
348
  end
348
349
 
349
- describe '#pbcopy' do
350
- before do
351
- controller.find '.file1'
352
- controller.toggle_mark
353
- controller.find 'dir3'
354
- controller.toggle_mark
355
- controller.clipboard
356
- end
357
- it 'copies the selected paths into clipboard' do
358
- `pbpaste`.should == "#{File.join(tmpdir, 'dir3')} #{File.join(tmpdir, '.file1')}"
350
+ if RbConfig::CONFIG['host_os'] =~ /darwin/
351
+ describe '#pbcopy' do
352
+ before do
353
+ controller.find '.file1'
354
+ controller.toggle_mark
355
+ controller.find 'dir3'
356
+ controller.toggle_mark
357
+ controller.clipboard
358
+ end
359
+ it 'copies the selected paths into clipboard' do
360
+ `pbpaste`.should == "#{File.join(tmpdir, 'dir3')} #{File.join(tmpdir, '.file1')}"
361
+ end
359
362
  end
360
363
  end
361
364
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  $LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
2
3
  $LOAD_PATH.unshift(__dir__)
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'tempfile'
2
3
 
3
4
  # copied from ActiveSupport 4
@@ -0,0 +1 @@
1
+ spec/testdir/.file1
@@ -0,0 +1 @@
1
+ spec/testdir/dir1
@@ -0,0 +1 @@
1
+ spec/testdir/file1
@@ -0,0 +1 @@
1
+ spec/testdir/file2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akira Matsuda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-03 00:00:00.000000000 Z
11
+ date: 2017-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -56,30 +56,30 @@ dependencies:
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "<"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '11.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "<"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '11.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "<"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '2.99'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "<"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '2.99'
83
83
  description: Ruby on Files & Directories
84
84
  email:
85
85
  - ronnie@dio.jp
@@ -109,6 +109,7 @@ files:
109
109
  - spec/testdir/dir1/.keep
110
110
  - spec/testdir/dir2/.keep
111
111
  - spec/testdir/dir3/.keep
112
+ - spec/testdir/dirlink1
112
113
  - spec/testdir/file1
113
114
  - spec/testdir/file2
114
115
  - spec/testdir/file3
@@ -136,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
137
  version: '0'
137
138
  requirements: []
138
139
  rubyforge_project:
139
- rubygems_version: 2.2.2
140
+ rubygems_version: 2.6.8
140
141
  signing_key:
141
142
  specification_version: 4
142
143
  summary: Ruby on Files & Directories
@@ -151,6 +152,7 @@ test_files:
151
152
  - spec/testdir/dir1/.keep
152
153
  - spec/testdir/dir2/.keep
153
154
  - spec/testdir/dir3/.keep
155
+ - spec/testdir/dirlink1
154
156
  - spec/testdir/file1
155
157
  - spec/testdir/file2
156
158
  - spec/testdir/file3
File without changes
@@ -1 +0,0 @@
1
- file1
File without changes