recls-ruby 2.12.0 → 2.12.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +27 -24
  3. data/README.md +242 -1
  4. data/examples/find_files_and_directories.md +33 -30
  5. data/examples/find_files_and_directories.recursive.md +255 -254
  6. data/examples/show_hidden_files.md +4 -1
  7. data/examples/show_hidden_files.rb +1 -1
  8. data/examples/show_readonly_files.md +4 -1
  9. data/examples/show_readonly_files.rb +1 -1
  10. data/lib/recls/api.rb +76 -73
  11. data/lib/recls/combine_paths_1.rb +26 -23
  12. data/lib/recls/combine_paths_2plus.rb +32 -29
  13. data/lib/recls/entry.rb +277 -273
  14. data/lib/recls/file_search.rb +194 -193
  15. data/lib/recls/flags.rb +48 -45
  16. data/lib/recls/foreach.rb +105 -98
  17. data/lib/recls/obsolete.rb +85 -79
  18. data/lib/recls/recls.rb +19 -24
  19. data/lib/recls/stat.rb +137 -134
  20. data/lib/recls/util.rb +95 -92
  21. data/lib/recls/version.rb +22 -17
  22. data/lib/recls/ximpl/os.rb +49 -48
  23. data/lib/recls/ximpl/unix.rb +41 -38
  24. data/lib/recls/ximpl/util.rb +600 -599
  25. data/lib/recls/ximpl/windows.rb +142 -139
  26. data/lib/recls.rb +10 -9
  27. data/test/scratch/test_display_parts.rb +33 -33
  28. data/test/scratch/test_entry.rb +6 -6
  29. data/test/scratch/test_files_and_directories.rb +8 -8
  30. data/test/scratch/test_foreach.rb +10 -10
  31. data/test/scratch/test_module_function.rb +33 -33
  32. data/test/scratch/test_pattern_arrays.rb +5 -5
  33. data/test/scratch/test_show_dev_and_ino.rb +1 -1
  34. data/test/scratch/test_show_hidden.rb +3 -3
  35. data/test/unit/tc_recls_entries.rb +31 -31
  36. data/test/unit/tc_recls_entry.rb +19 -19
  37. data/test/unit/tc_recls_file_search.rb +32 -32
  38. data/test/unit/tc_recls_module.rb +25 -25
  39. data/test/unit/tc_recls_util.rb +161 -161
  40. data/test/unit/tc_recls_ximpl_util.rb +676 -676
  41. data/test/unit/test_all_separately.sh +1 -1
  42. data/test/unit/ts_all.rb +4 -4
  43. metadata +7 -7
@@ -1,13 +1,14 @@
1
- # ######################################################################### #
2
- # File: recls/ximpl/windows.rb
1
+ # ######################################################################## #
2
+ # File: recls/ximpl/windows.rb
3
3
  #
4
- # Purpose: Windows-specific constructs for the recls library.
4
+ # Purpose: Windows-specific constructs for the recls library.
5
5
  #
6
- # Created: 19th February 2014
7
- # Updated: 14th April 2019
6
+ # Created: 19th February 2014
7
+ # Updated: 20th April 2024
8
8
  #
9
- # Author: Matthew Wilson
9
+ # Author: Matthew Wilson
10
10
  #
11
+ # Copyright (c) 2019-2024, Matthew Wilson and Synesis Information Systems
11
12
  # Copyright (c) 2012-2019, Matthew Wilson and Synesis Software
12
13
  # All rights reserved.
13
14
  #
@@ -33,197 +34,199 @@
33
34
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
35
  # POSSIBILITY OF SUCH DAMAGE.
35
36
  #
36
- # ######################################################################### #
37
+ # ######################################################################## #
37
38
 
38
39
 
39
40
  require 'Win32API'
40
41
 
42
+
41
43
  =begin
42
44
  =end
43
45
 
44
- module Recls # :nodoc:
45
-
46
46
  # :stopdoc:
47
47
 
48
- module Ximpl # :nodoc: all
48
+ module Recls # :nodoc:
49
49
 
50
- # @!visibility private
51
- class FileStat < File::Stat # :nodoc:
50
+ # @!visibility private
51
+ module Ximpl # :nodoc: all
52
52
 
53
- private
54
- GetFileAttributes = Win32API.new('kernel32', 'GetFileAttributes', [ 'P' ], 'I')
55
- GetFileInformationByHandle = Win32API.new('kernel32', 'GetFileInformationByHandle', [ 'L', 'P' ], 'I')
56
- GetShortPathName = Win32API.new('kernel32', 'GetShortPathName', [ 'P', 'P', 'L' ], 'L')
57
- CreateFile = Win32API.new('kernel32', 'CreateFile', [ 'P', 'L', 'L', 'L', 'L', 'L', 'L' ], 'L')
58
- CloseHandle = Win32API.new('kernel32', 'CloseHandle', [ 'L' ], 'L')
59
- FILE_ATTRIBUTE_READONLY = 0x00000001
60
- FILE_ATTRIBUTE_HIDDEN = 0x00000002
61
- FILE_ATTRIBUTE_SYSTEM = 0x00000004
62
- FILE_ATTRIBUTE_DIRECTORY = 0x00000010
63
- FILE_ATTRIBUTE_ARCHIVE = 0x00000020
64
- FILE_ATTRIBUTE_DEVICE = 0x00000040
65
- FILE_ATTRIBUTE_NORMAL = 0x00000080
66
- FILE_ATTRIBUTE_TEMPORARY = 0x00000100
67
- FILE_ATTRIBUTE_COMPRESSED = 0x00000800
68
- FILE_ATTRIBUTE_ENCRYPTED = 0x00004000
53
+ # @!visibility private
54
+ class FileStat < File::Stat # :nodoc:
69
55
 
70
- OPEN_EXISTING = 0x00000003
71
- FILE_FLAG_OVERLAPPED = 0x40000000
72
- NULL = 0x00000000
73
- INVALID_HANDLE_VALUE = 0xFFFFFFFF
56
+ private
57
+ GetFileAttributes = Win32API.new('kernel32', 'GetFileAttributes', [ 'P' ], 'I')
58
+ GetFileInformationByHandle = Win32API.new('kernel32', 'GetFileInformationByHandle', [ 'L', 'P' ], 'I')
59
+ GetShortPathName = Win32API.new('kernel32', 'GetShortPathName', [ 'P', 'P', 'L' ], 'L')
60
+ CreateFile = Win32API.new('kernel32', 'CreateFile', [ 'P', 'L', 'L', 'L', 'L', 'L', 'L' ], 'L')
61
+ CloseHandle = Win32API.new('kernel32', 'CloseHandle', [ 'L' ], 'L')
62
+ FILE_ATTRIBUTE_READONLY = 0x00000001
63
+ FILE_ATTRIBUTE_HIDDEN = 0x00000002
64
+ FILE_ATTRIBUTE_SYSTEM = 0x00000004
65
+ FILE_ATTRIBUTE_DIRECTORY = 0x00000010
66
+ FILE_ATTRIBUTE_ARCHIVE = 0x00000020
67
+ FILE_ATTRIBUTE_DEVICE = 0x00000040
68
+ FILE_ATTRIBUTE_NORMAL = 0x00000080
69
+ FILE_ATTRIBUTE_TEMPORARY = 0x00000100
70
+ FILE_ATTRIBUTE_COMPRESSED = 0x00000800
71
+ FILE_ATTRIBUTE_ENCRYPTED = 0x00004000
72
+
73
+ OPEN_EXISTING = 0x00000003
74
+ FILE_FLAG_OVERLAPPED = 0x40000000
75
+ NULL = 0x00000000
76
+ INVALID_HANDLE_VALUE = 0xFFFFFFFF
74
77
 
75
- MAX_PATH = 260
78
+ MAX_PATH = 260
76
79
 
77
- BHFI_pack_string = 'LQQQLLLLLL'
80
+ BHFI_pack_string = 'LQQQLLLLLL'
78
81
 
79
- # @!visibility private
80
- class ByHandleInformation # :nodoc:
82
+ # @!visibility private
83
+ class ByHandleInformation # :nodoc:
81
84
 
82
- # @!visibility private
83
- def initialize(path) # :nodoc:
85
+ # @!visibility private
86
+ def initialize(path) # :nodoc:
84
87
 
85
- @volume_id = 0
86
- @file_index = 0
87
- @num_links = 0
88
+ @volume_id = 0
89
+ @file_index = 0
90
+ @num_links = 0
88
91
 
89
- # for some reason not forcing this new string causes 'can't modify frozen string (TypeError)' (in Ruby 1.8.x)
90
- hFile = CreateFile.call("#{path}", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
91
- if INVALID_HANDLE_VALUE != hFile
92
+ # for some reason not forcing this new string causes 'can't modify frozen string (TypeError)' (in Ruby 1.8.x)
93
+ hFile = CreateFile.call("#{path}", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
94
+ if INVALID_HANDLE_VALUE != hFile
92
95
 
93
- begin
94
- bhfi = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
95
- bhfi = bhfi.pack(BHFI_pack_string)
96
+ begin
97
+ bhfi = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
98
+ bhfi = bhfi.pack(BHFI_pack_string)
96
99
 
97
- if GetFileInformationByHandle.call(hFile, bhfi)
100
+ if GetFileInformationByHandle.call(hFile, bhfi)
98
101
 
99
- bhfi = bhfi.unpack(BHFI_pack_string)
102
+ bhfi = bhfi.unpack(BHFI_pack_string)
100
103
 
101
- @volume_id = bhfi[4]
102
- @file_index = (bhfi[8] << 32) | bhfi[9]
103
- @num_links = bhfi[7]
104
- else
105
- end
106
- ensure
107
- CloseHandle.call(hFile)
108
- end
109
- end
110
- end
104
+ @volume_id = bhfi[4]
105
+ @file_index = (bhfi[8] << 32) | bhfi[9]
106
+ @num_links = bhfi[7]
107
+ else
108
+ end
109
+ ensure
110
+ CloseHandle.call(hFile)
111
+ end
112
+ end
113
+ end
111
114
 
112
- # @!visibility private
113
- attr_reader :volume_id
114
- # @!visibility private
115
- attr_reader :file_index
116
- # @!visibility private
117
- attr_reader :num_links
118
- end
115
+ # @!visibility private
116
+ attr_reader :volume_id
117
+ # @!visibility private
118
+ attr_reader :file_index
119
+ # @!visibility private
120
+ attr_reader :num_links
121
+ end
119
122
 
120
- private
121
- # @!visibility private
122
- def has_attribute_? (attr) # :nodoc:
123
+ private
124
+ # @!visibility private
125
+ def has_attribute_? (attr) # :nodoc:
123
126
 
124
- 0 != (attr & @attributes)
125
- end
127
+ 0 != (attr & @attributes)
128
+ end
126
129
 
127
- private
128
- # @!visibility private
129
- def initialize(path) # :nodoc:
130
+ private
131
+ # @!visibility private
132
+ def initialize(path) # :nodoc:
130
133
 
131
- @path = path
134
+ @path = path
132
135
 
133
- # for some reason not forcing this new string causes 'can't modify frozen string (TypeError)'
134
- attributes = GetFileAttributes.call("#{path}")
136
+ # for some reason not forcing this new string causes 'can't modify frozen string (TypeError)'
137
+ attributes = GetFileAttributes.call("#{path}")
135
138
 
136
- if 0xffffffff == attributes
139
+ if 0xffffffff == attributes
137
140
 
138
- @attributes = 0
139
- else
141
+ @attributes = 0
142
+ else
140
143
 
141
- @attributes = attributes
142
- end
144
+ @attributes = attributes
145
+ end
143
146
 
144
- super(path)
147
+ super(path)
145
148
 
146
- @by_handle_information = ByHandleInformation.new(path)
149
+ @by_handle_information = ByHandleInformation.new(path)
147
150
 
148
- buff = ' ' * MAX_PATH
149
- # not forcing this new string causes 'can't modify frozen string (TypeError)'
150
- n = GetShortPathName.call("#{path}", buff, buff.length)
151
- @short_path = (0 == n) ? nil : buff[0...n]
152
- end
151
+ buff = ' ' * MAX_PATH
152
+ # not forcing this new string causes 'can't modify frozen string (TypeError)'
153
+ n = GetShortPathName.call("#{path}", buff, buff.length)
154
+ @short_path = (0 == n) ? nil : buff[0...n]
155
+ end
153
156
 
154
- public
155
- # @!visibility private
156
- attr_reader :attributes
157
- # @!visibility private
158
- attr_reader :path
159
- # @!visibility private
160
- attr_reader :by_handle_information
161
- # @!visibility private
162
- attr_reader :short_path
157
+ public
158
+ # @!visibility private
159
+ attr_reader :attributes
160
+ # @!visibility private
161
+ attr_reader :path
162
+ # @!visibility private
163
+ attr_reader :by_handle_information
164
+ # @!visibility private
165
+ attr_reader :short_path
163
166
 
164
- # @!visibility private
165
- def hidden? # :nodoc:
167
+ # @!visibility private
168
+ def hidden? # :nodoc:
166
169
 
167
- 0 != (FILE_ATTRIBUTE_HIDDEN & @attributes)
168
- end
170
+ 0 != (FILE_ATTRIBUTE_HIDDEN & @attributes)
171
+ end
169
172
 
170
- # Windows-specific attributes
173
+ # Windows-specific attributes
171
174
 
172
- # @!visibility private
173
- def system? # :nodoc:
175
+ # @!visibility private
176
+ def system? # :nodoc:
174
177
 
175
- has_attribute_? FILE_ATTRIBUTE_SYSTEM
176
- end
178
+ has_attribute_? FILE_ATTRIBUTE_SYSTEM
179
+ end
177
180
 
178
- # @!visibility private
179
- def archive? # :nodoc:
181
+ # @!visibility private
182
+ def archive? # :nodoc:
180
183
 
181
- has_attribute_? FILE_ATTRIBUTE_ARCHIVE
182
- end
184
+ has_attribute_? FILE_ATTRIBUTE_ARCHIVE
185
+ end
183
186
 
184
- # @!visibility private
185
- def device? # :nodoc:
187
+ # @!visibility private
188
+ def device? # :nodoc:
186
189
 
187
- has_attribute_? FILE_ATTRIBUTE_DEVICE
188
- end
190
+ has_attribute_? FILE_ATTRIBUTE_DEVICE
191
+ end
189
192
 
190
- # @!visibility private
191
- def normal? # :nodoc:
193
+ # @!visibility private
194
+ def normal? # :nodoc:
192
195
 
193
- has_attribute_? FILE_ATTRIBUTE_NORMAL
194
- end
196
+ has_attribute_? FILE_ATTRIBUTE_NORMAL
197
+ end
195
198
 
196
- # @!visibility private
197
- def temporary? # :nodoc:
199
+ # @!visibility private
200
+ def temporary? # :nodoc:
198
201
 
199
- has_attribute_? FILE_ATTRIBUTE_TEMPORARY
200
- end
202
+ has_attribute_? FILE_ATTRIBUTE_TEMPORARY
203
+ end
201
204
 
202
- # @!visibility private
203
- def compressed? # :nodoc:
205
+ # @!visibility private
206
+ def compressed? # :nodoc:
204
207
 
205
- has_attribute_? FILE_ATTRIBUTE_COMPRESSED
206
- end
208
+ has_attribute_? FILE_ATTRIBUTE_COMPRESSED
209
+ end
207
210
 
208
- # @!visibility private
209
- def encrypted? # :nodoc:
211
+ # @!visibility private
212
+ def encrypted? # :nodoc:
210
213
 
211
- has_attribute_? FILE_ATTRIBUTE_ENCRYPTED
212
- end
214
+ has_attribute_? FILE_ATTRIBUTE_ENCRYPTED
215
+ end
213
216
 
214
217
 
215
- public
216
- # @!visibility private
217
- def FileStat.stat(path) # :nodoc:
218
+ public
219
+ # @!visibility private
220
+ def FileStat.stat(path) # :nodoc:
218
221
 
219
- Recls::Ximpl::FileStat.new(path)
220
- end
221
- end # class FileStat
222
- end # module Ximpl
222
+ Recls::Ximpl::FileStat.new(path)
223
+ end
224
+ end # class FileStat
225
+ end # module Ximpl
226
+ end # module Recls
223
227
 
224
228
  # :startdoc:
225
229
 
226
- end # module Recls
227
230
 
228
231
  # ############################## end of file ############################# #
229
232
 
data/lib/recls.rb CHANGED
@@ -1,14 +1,15 @@
1
- # ######################################################################### #
2
- # File: recls.rb
1
+ # ######################################################################## #
2
+ # File: recls.rb
3
3
  #
4
- # Purpose: Top-level include for recls.Ruby library
4
+ # Purpose: Top-level include for recls.Ruby library
5
5
  #
6
- # Created: 13th January 2012
7
- # Updated: 27th August 2015
6
+ # Created: 13th January 2012
7
+ # Updated: 20th April 2024
8
8
  #
9
- # Author: Matthew Wilson
9
+ # Author: Matthew Wilson
10
10
  #
11
- # Copyright (c) 2012-2015, Matthew Wilson and Synesis Software
11
+ # Copyright (c) 2019-2024, Matthew Wilson and Synesis Information Systems
12
+ # Copyright (c) 2012-2019, Matthew Wilson and Synesis Software
12
13
  # All rights reserved.
13
14
  #
14
15
  # Redistribution and use in source and binary forms, with or without
@@ -33,11 +34,11 @@
33
34
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
35
  # POSSIBILITY OF SUCH DAMAGE.
35
36
  #
36
- # ######################################################################### #
37
+ # ######################################################################## #
37
38
 
38
39
 
39
40
  require 'recls/recls'
40
41
 
41
- # ############################## end of file ############################# #
42
42
 
43
+ # ############################## end of file ############################# #
43
44
 
@@ -6,41 +6,41 @@ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
6
6
 
7
7
  require 'recls'
8
8
 
9
- root_dir = '.'
10
- patterns = Recls::WILDCARDS_ALL
9
+ root_dir = '.'
10
+ patterns = Recls::WILDCARDS_ALL
11
11
 
12
12
  Recls::FileSearch.new(root_dir, patterns, Recls::FILES | Recls::RECURSIVE).each do |fe|
13
13
 
14
- drive = fe.drive || ''
15
-
16
- puts
17
- puts "entry:"
18
- puts fe.path
19
- puts fe.short_path
20
- puts fe.directory_path
21
- puts drive
22
- puts "".ljust(drive ? drive.size : 0) + fe.directory.to_s
23
- puts "".ljust(fe.directory_path.size) + fe.file.to_s
24
- puts "".ljust(fe.directory_path.size) + fe.file_short_name.to_s
25
- puts "".ljust(fe.directory_path.size) + fe.stem.to_s
26
- puts "".ljust(fe.directory_path.size + fe.stem.size) + fe.extension.to_s
27
- n = drive.size
28
- fe.directory_parts.each do |part|
29
-
30
- puts "".ljust(n) + part
31
- n += part.size
32
- end
33
-
34
- puts fe.search_directory
35
- puts "".ljust(fe.search_directory.size) + fe.search_relative_path.to_s
36
- puts "".ljust(fe.search_directory.size) + fe.search_relative_directory_path.to_s
37
- puts "".ljust(fe.search_directory.size) + fe.search_relative_directory.to_s
38
-
39
- n = fe.search_directory.size
40
- fe.search_relative_directory_parts.each do |part|
41
-
42
- puts "".ljust(n) + part
43
- n += part.size
44
- end
14
+ drive = fe.drive || ''
15
+
16
+ puts
17
+ puts "entry:"
18
+ puts fe.path
19
+ puts fe.short_path
20
+ puts fe.directory_path
21
+ puts drive
22
+ puts "".ljust(drive ? drive.size : 0) + fe.directory.to_s
23
+ puts "".ljust(fe.directory_path.size) + fe.file.to_s
24
+ puts "".ljust(fe.directory_path.size) + fe.file_short_name.to_s
25
+ puts "".ljust(fe.directory_path.size) + fe.stem.to_s
26
+ puts "".ljust(fe.directory_path.size + fe.stem.size) + fe.extension.to_s
27
+ n = drive.size
28
+ fe.directory_parts.each do |part|
29
+
30
+ puts "".ljust(n) + part
31
+ n += part.size
32
+ end
33
+
34
+ puts fe.search_directory
35
+ puts "".ljust(fe.search_directory.size) + fe.search_relative_path.to_s
36
+ puts "".ljust(fe.search_directory.size) + fe.search_relative_directory_path.to_s
37
+ puts "".ljust(fe.search_directory.size) + fe.search_relative_directory.to_s
38
+
39
+ n = fe.search_directory.size
40
+ fe.search_relative_directory_parts.each do |part|
41
+
42
+ puts "".ljust(n) + part
43
+ n += part.size
44
+ end
45
45
  end
46
46
 
@@ -22,7 +22,7 @@ puts "\t#{'f.directory'.ljust(20)}\t#{f.directory}"
22
22
  directory_parts = f.directory_parts
23
23
  puts "\t#{'f.directory_parts'.ljust(20)}\t[#{directory_parts.size}]"
24
24
  directory_parts.each do |part|
25
- puts "\t#{''.ljust(20)}\t\t#{part}"
25
+ puts "\t#{''.ljust(20)}\t\t#{part}"
26
26
  end
27
27
  puts "\t#{'f.file_full_name'.ljust(20)}\t#{f.file_full_name}"
28
28
  puts "\t#{'f.file_short_name'.ljust(20)}\t#{f.file_short_name}"
@@ -36,7 +36,7 @@ puts "\t#{'f.search_relative_directory_path'.ljust(20)}\t#{f.search_relative_dir
36
36
  search_relative_directory_parts = f.search_relative_directory_parts
37
37
  puts "\t#{'f.search_relative_directory_parts'.ljust(20)}\t[#{search_relative_directory_parts.size}]"
38
38
  search_relative_directory_parts.each do |part|
39
- puts "\t#{''.ljust(20)}\t\t#{part}"
39
+ puts "\t#{''.ljust(20)}\t\t#{part}"
40
40
  end
41
41
 
42
42
  puts "\t#{'f.size'.ljust(20)}\t#{f.size}"
@@ -66,8 +66,8 @@ puts "directories:"
66
66
  num_directories = 0
67
67
  Recls::FileSearch.new('.', '*', Recls::DIRECTORIES).each do |fe|
68
68
 
69
- num_directories += 1
70
- puts "\t[#{fe.search_relative_path}]"
69
+ num_directories += 1
70
+ puts "\t[#{fe.search_relative_path}]"
71
71
  end
72
72
  puts " #{num_directories} directories"
73
73
 
@@ -76,8 +76,8 @@ puts "files:"
76
76
  num_files = 0
77
77
  Recls::FileSearch.new('.', '*.rb', Recls::RECURSIVE | Recls::FILES).each do |fe|
78
78
 
79
- num_files += 1
80
- puts "\t<#{fe.search_relative_path}>"
79
+ num_files += 1
80
+ puts "\t<#{fe.search_relative_path}>"
81
81
  end
82
82
  puts " #{num_files} file(s)"
83
83
 
@@ -12,15 +12,15 @@ puts
12
12
 
13
13
  Recls::FileSearch.new(nil, nil, Recls::FILES | Recls::DIRECTORIES | Recls::RECURSIVE).each do |fe|
14
14
 
15
- path = fe.search_relative_path
15
+ path = fe.search_relative_path
16
16
 
17
- if fe.directory?
17
+ if fe.directory?
18
18
 
19
- puts path + '/'
20
- else
19
+ puts path + '/'
20
+ else
21
21
 
22
- puts path
23
- end
22
+ puts path
23
+ end
24
24
  end
25
25
 
26
26
  puts
@@ -29,8 +29,8 @@ puts
29
29
 
30
30
  Recls::FileSearch.new(nil, nil, Recls::FILES | Recls::DIRECTORIES | Recls::RECURSIVE | Recls::MARK_DIRECTORIES).each do |fe|
31
31
 
32
- path = fe.search_relative_path
32
+ path = fe.search_relative_path
33
33
 
34
- puts path
34
+ puts path
35
35
  end
36
36
 
@@ -11,13 +11,13 @@ puts "with given block:"
11
11
  count_1 = 0
12
12
  Recls.foreach(Recls::FileSearch.new(nil, '*.rb', Recls::RECURSIVE)).each do |line, line_number, fe|
13
13
 
14
- line = line.chomp
15
- line_number = 1 + line_number
14
+ line = line.chomp
15
+ line_number = 1 + line_number
16
16
 
17
- puts "#{fe.search_relative_path}(#{line_number + 1}): #{line}"
17
+ puts "#{fe.search_relative_path}(#{line_number + 1}): #{line}"
18
18
 
19
- count_1 += 1
20
- break if 20 == count_1
19
+ count_1 += 1
20
+ break if 20 == count_1
21
21
  end
22
22
 
23
23
  puts
@@ -26,13 +26,13 @@ e = Recls.foreach(Recls::FileSearch.new(nil, '*.rb', Recls::RECURSIVE))
26
26
  count_2 = 0
27
27
  e.each do |line, line_number, fe|
28
28
 
29
- line = line.chomp
30
- line_number = 1 + line_number
29
+ line = line.chomp
30
+ line_number = 1 + line_number
31
31
 
32
- puts "#{fe.search_relative_path}(#{line_number + 1}): #{line}"
32
+ puts "#{fe.search_relative_path}(#{line_number + 1}): #{line}"
33
33
 
34
- count_2 += 1
35
- break if 20 == count_2
34
+ count_2 += 1
35
+ break if 20 == count_2
36
36
  end
37
37
 
38
38
 
@@ -6,41 +6,41 @@ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
6
6
 
7
7
  require 'recls'
8
8
 
9
- root_dir = '.'
10
- patterns = Recls::WILDCARDS_ALL
9
+ root_dir = '.'
10
+ patterns = Recls::WILDCARDS_ALL
11
11
 
12
12
  Recls.FileSearch(root_dir, patterns, flags: Recls::FILES).each do |fe|
13
13
 
14
- drive = fe.drive || ''
15
-
16
- puts
17
- puts "entry:"
18
- puts fe.path
19
- puts fe.short_path
20
- puts fe.directory_path
21
- puts drive
22
- puts "".ljust(drive ? drive.size : 0) + fe.directory.to_s
23
- puts "".ljust(fe.directory_path.size) + fe.file.to_s
24
- puts "".ljust(fe.directory_path.size) + fe.file_short_name.to_s
25
- puts "".ljust(fe.directory_path.size) + fe.stem.to_s
26
- puts "".ljust(fe.directory_path.size + fe.stem.size) + fe.extension.to_s
27
- n = drive.size
28
- fe.directory_parts.each do |part|
29
-
30
- puts "".ljust(n) + part
31
- n += part.size
32
- end
33
-
34
- puts fe.search_directory
35
- puts "".ljust(fe.search_directory.size) + fe.search_relative_path.to_s
36
- puts "".ljust(fe.search_directory.size) + fe.search_relative_directory_path.to_s
37
- puts "".ljust(fe.search_directory.size) + fe.search_relative_directory.to_s
38
-
39
- n = fe.search_directory.size
40
- fe.search_relative_directory_parts.each do |part|
41
-
42
- puts "".ljust(n) + part
43
- n += part.size
44
- end
14
+ drive = fe.drive || ''
15
+
16
+ puts
17
+ puts "entry:"
18
+ puts fe.path
19
+ puts fe.short_path
20
+ puts fe.directory_path
21
+ puts drive
22
+ puts "".ljust(drive ? drive.size : 0) + fe.directory.to_s
23
+ puts "".ljust(fe.directory_path.size) + fe.file.to_s
24
+ puts "".ljust(fe.directory_path.size) + fe.file_short_name.to_s
25
+ puts "".ljust(fe.directory_path.size) + fe.stem.to_s
26
+ puts "".ljust(fe.directory_path.size + fe.stem.size) + fe.extension.to_s
27
+ n = drive.size
28
+ fe.directory_parts.each do |part|
29
+
30
+ puts "".ljust(n) + part
31
+ n += part.size
32
+ end
33
+
34
+ puts fe.search_directory
35
+ puts "".ljust(fe.search_directory.size) + fe.search_relative_path.to_s
36
+ puts "".ljust(fe.search_directory.size) + fe.search_relative_directory_path.to_s
37
+ puts "".ljust(fe.search_directory.size) + fe.search_relative_directory.to_s
38
+
39
+ n = fe.search_directory.size
40
+ fe.search_relative_directory_parts.each do |part|
41
+
42
+ puts "".ljust(n) + part
43
+ n += part.size
44
+ end
45
45
  end
46
46