rfd 0.6.0 → 0.6.1
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.
- checksums.yaml +4 -4
- data/lib/rfd/item.rb +9 -8
- data/lib/rfd/windows.rb +2 -5
- data/lib/rfd.rb +9 -15
- data/rfd.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69382b24587d8b96f6e478174154cec5789aee94
|
4
|
+
data.tar.gz: 0358469e32e915327f17bcd8f5ea379449ffc3c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 977b478de382705aaced23f74ae8714f796d3d8d1e92a073c0dcb6e5fda07b9b3ff33f375598143d5fb433e6f2a151bcfbc86cee97cd5f56f24295de0e207d24
|
7
|
+
data.tar.gz: f70b35ab1d5a592c13d3540f2b4dd92cc3cac1c56415b6a64d8fcedf6903212b4dc7c41d657fc64921534120b058548e040af2069022cc89752a31ac752ca0b3
|
data/lib/rfd/item.rb
CHANGED
@@ -4,8 +4,9 @@ module Rfd
|
|
4
4
|
attr_reader :name, :dir, :stat
|
5
5
|
attr_accessor :index
|
6
6
|
|
7
|
-
def initialize(dir: nil, name: nil, stat: nil, window_width: nil)
|
8
|
-
@dir, @name, @stat, @window_width, @marked = dir, name, stat, window_width, false
|
7
|
+
def initialize(path: nil, dir: nil, name: nil, stat: nil, window_width: nil)
|
8
|
+
@path, @dir, @name, @stat, @window_width, @marked = path, dir || File.dirname(path), name || File.basename(path), stat, window_width, false
|
9
|
+
@stat = File.lstat self.path unless stat
|
9
10
|
end
|
10
11
|
|
11
12
|
def path
|
@@ -127,10 +128,8 @@ module Rfd
|
|
127
128
|
@zip_ ||= begin
|
128
129
|
if directory?
|
129
130
|
false
|
130
|
-
elsif symlink?
|
131
|
-
File.binread(target, 4).unpack('V').first == 0x04034b50
|
132
131
|
else
|
133
|
-
File.binread(
|
132
|
+
File.binread(realpath, 4).unpack('V').first == 0x04034b50
|
134
133
|
end
|
135
134
|
rescue
|
136
135
|
false
|
@@ -141,10 +140,8 @@ module Rfd
|
|
141
140
|
@gz_ ||= begin
|
142
141
|
if directory?
|
143
142
|
false
|
144
|
-
elsif symlink?
|
145
|
-
File.binread(target, 2).unpack('n').first == 0x1f8b
|
146
143
|
else
|
147
|
-
File.binread(
|
144
|
+
File.binread(realpath, 2).unpack('n').first == 0x1f8b
|
148
145
|
end
|
149
146
|
rescue
|
150
147
|
false
|
@@ -155,6 +152,10 @@ module Rfd
|
|
155
152
|
File.readlink path if symlink?
|
156
153
|
end
|
157
154
|
|
155
|
+
def realpath
|
156
|
+
@realpath ||= File.realpath path
|
157
|
+
end
|
158
|
+
|
158
159
|
def toggle_mark
|
159
160
|
unless %w(. ..).include? name
|
160
161
|
@marked = !@marked
|
data/lib/rfd/windows.rb
CHANGED
@@ -76,7 +76,7 @@ module Rfd
|
|
76
76
|
attr_reader :current_index, :begy
|
77
77
|
attr_writer :number_of_panes
|
78
78
|
|
79
|
-
def initialize
|
79
|
+
def initialize
|
80
80
|
@begy, @current_index, @number_of_panes = 5, 0, 2
|
81
81
|
super window: Curses::Pad.new(Curses.lines - 7, Curses.cols - 2)
|
82
82
|
end
|
@@ -127,10 +127,7 @@ module Rfd
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def toggle_mark(item)
|
130
|
-
|
131
|
-
setpos item.index % maxy, 0
|
132
|
-
self << item.current_mark
|
133
|
-
end
|
130
|
+
item.toggle_mark
|
134
131
|
end
|
135
132
|
end
|
136
133
|
|
data/lib/rfd.rb
CHANGED
@@ -169,7 +169,7 @@ module Rfd
|
|
169
169
|
|
170
170
|
# Change the current directory.
|
171
171
|
def cd(dir = '~', pushd: true)
|
172
|
-
dir = load_item expand_path(dir) unless dir.is_a? Item
|
172
|
+
dir = load_item path: expand_path(dir) unless dir.is_a? Item
|
173
173
|
unless dir.zip?
|
174
174
|
Dir.chdir dir
|
175
175
|
@current_zip = nil
|
@@ -254,17 +254,16 @@ module Rfd
|
|
254
254
|
def fetch_items_from_filesystem_or_zip
|
255
255
|
unless in_zip?
|
256
256
|
@items = Dir.foreach(current_dir).map {|fn|
|
257
|
-
|
258
|
-
Item.new dir: current_dir, name: fn, stat: stat, window_width: main.width
|
257
|
+
load_item dir: current_dir, name: fn
|
259
258
|
}.to_a.partition {|i| %w(. ..).include? i.name}.flatten
|
260
259
|
else
|
261
|
-
@items = [
|
262
|
-
|
260
|
+
@items = [load_item(dir: current_dir, name: '.', stat: File.stat(current_dir)),
|
261
|
+
load_item(dir: current_dir, name: '..', stat: File.stat(File.dirname(current_dir)))]
|
263
262
|
zf = Zip::File.new current_dir
|
264
263
|
zf.each {|entry|
|
265
264
|
next if entry.name_is_directory?
|
266
265
|
stat = zf.file.stat entry.name
|
267
|
-
@items <<
|
266
|
+
@items << load_item(dir: current_dir, name: entry.name, stat: stat)
|
268
267
|
}
|
269
268
|
end
|
270
269
|
end
|
@@ -281,11 +280,6 @@ module Rfd
|
|
281
280
|
move_cursor items.size - index - 1 if index
|
282
281
|
end
|
283
282
|
|
284
|
-
# Width of the currently active pane.
|
285
|
-
def maxx
|
286
|
-
main.maxx
|
287
|
-
end
|
288
|
-
|
289
283
|
# Height of the currently active pane.
|
290
284
|
def maxy
|
291
285
|
main.maxy
|
@@ -348,6 +342,7 @@ module Rfd
|
|
348
342
|
fetch_items_from_filesystem_or_zip
|
349
343
|
@items = items.shift(2) + items.select {|i| i.name =~ regexp}
|
350
344
|
sort_items_according_to_current_direction
|
345
|
+
draw_items
|
351
346
|
switch_page 0
|
352
347
|
move_cursor 0
|
353
348
|
|
@@ -489,7 +484,7 @@ module Rfd
|
|
489
484
|
if items.include? item
|
490
485
|
i = 1
|
491
486
|
while i += 1
|
492
|
-
new_item =
|
487
|
+
new_item = load_item dir: current_dir, name: "#{item.basename}_#{i}#{item.extname}", stat: item.stat
|
493
488
|
break unless File.exist? new_item.path
|
494
489
|
end
|
495
490
|
FileUtils.cp_r item, new_item
|
@@ -745,9 +740,8 @@ module Rfd
|
|
745
740
|
File.expand_path path.start_with?('/') || path.start_with?('~') ? path : current_dir ? current_dir.join(path) : path
|
746
741
|
end
|
747
742
|
|
748
|
-
def load_item(path)
|
749
|
-
|
750
|
-
Item.new dir: File.dirname(path), name: File.basename(path), stat: stat, window_width: maxx
|
743
|
+
def load_item(path: nil, dir: nil, name: nil, stat: nil)
|
744
|
+
Item.new dir: dir || File.dirname(path), name: name || File.basename(path), stat: stat, window_width: main.width
|
751
745
|
end
|
752
746
|
|
753
747
|
def osx?
|
data/rfd.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "rfd"
|
7
|
-
spec.version = '0.6.
|
7
|
+
spec.version = '0.6.1'
|
8
8
|
spec.authors = ["Akira Matsuda"]
|
9
9
|
spec.email = ["ronnie@dio.jp"]
|
10
10
|
spec.description = 'Ruby on Files & Directories'
|
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.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|