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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adf1c9d879c34d01328e9426fb4232a9ca54bdcbbf97b95fa4bf08a91281b1fe
4
- data.tar.gz: 7447488d2bdb53b2df2b7d387ff82a4091220a0553cb001a868a86321dfd49aa
3
+ metadata.gz: b7ad41cfec6d08d5ba41ef9c6bc47f5b151d61a232f9f7a04ce389ca49487f51
4
+ data.tar.gz: 9cb9cff1104388001437470dbd6cb82566313f78d82b0a5b323689573f57f5d9
5
5
  SHA512:
6
- metadata.gz: 33695196ec35f93cbfd5937d6997a461bb1485e2ad4ef5b8728ad002fd30048d4dd804ba13217f9a60e78df986708edb3db66e17b087d6d023e7923f71aa350f
7
- data.tar.gz: 471f1adcba4b1c8171ab2781dc4c57f7fac86b59954dc82292d545fb5ae2e4f2123d568a18fbb2f56559a7028fe40740a8288f4f5c49a1c1fe802c654a9304b6
6
+ metadata.gz: 5c61cd03d38a8d459d9bbfc3f150e0fed22182abef92da86dd135040690088f070d69f55cfa3ccf4312f7d1b122d921eb72b48e2137fa8801e1360d29aec4dfe
7
+ data.tar.gz: fb1603cbf0f8ffd86c1c679ac08f0d5bf5c770d8d4348a24b74bab1e5440b28f6f35a7e8ef4368252eaf9ab0d5f081935814ebd48ade0c26939340a964b748e0
data/LICENSE CHANGED
@@ -1,31 +1,34 @@
1
- recls.Ruby
1
+ recls.Ruby - BSD 3-Clause License
2
+
3
+ Copyright (c) 2019-2024, Matthew Wilson and Synesis Information Systems
4
+ Copyright (c) 2003-2019, Matthew Wilson and Synesis Software
2
5
 
3
- Copyright (c) 2003-2016, Matthew Wilson and Synesis Software
4
6
  All rights reserved.
5
7
 
6
8
  Redistribution and use in source and binary forms, with or without
7
9
  modification, are permitted provided that the following conditions are met:
8
10
 
9
- * Redistributions of source code must retain the above copyright notice, this
10
- list of conditions and the following disclaimer.
11
-
12
- * Redistributions in binary form must reproduce the above copyright notice,
13
- this list of conditions and the following disclaimer in the documentation
14
- and/or other materials provided with the distribution.
15
-
16
- * Neither the names of recls or recls.Ruby nor the names of the copyright
17
- holder nor the names of its contributors may be used to endorse or promote
18
- products derived from this software without specific prior written
19
- permission.
20
-
21
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
22
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11
+ 1. Redistributions of source code must retain the above copyright notice,
12
+ this list of conditions and the following disclaimer.
13
+
14
+ 2. Redistributions in binary form must reproduce the above copyright notice,
15
+ this list of conditions and the following disclaimer in the documentation
16
+ and/or other materials provided with the distribution.
17
+
18
+ 3. Neither the names of recls, recls-Ruby,
19
+ recls.Ruby, nor the name of the copyright holder nor the names of
20
+ its contributors may be used to endorse or promote products derived from
21
+ this software without specific prior written permission.
22
+
23
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
+ POSSIBILITY OF SUCH DAMAGE.
31
34
 
data/README.md CHANGED
@@ -1,14 +1,17 @@
1
1
  # recls.Ruby
2
+
2
3
  **rec**ursive **ls**, for Ruby
3
4
 
4
5
  [![Gem Version](https://badge.fury.io/rb/recls-ruby.svg)](https://badge.fury.io/rb/recls-ruby)
5
6
 
7
+
6
8
  ## Introduction
7
9
 
8
10
  **recls** stands for **rec**ursive **ls**. The first recls library was a C
9
11
  library with a C++ wrapper. There have been several implementations in other
10
12
  languages. **recls.Ruby** is the Ruby version.
11
13
 
14
+
12
15
  ## Table of Contents
13
16
 
14
17
  1. [Introduction](#introduction)
@@ -17,14 +20,17 @@ languages. **recls.Ruby** is the Ruby version.
17
20
  4. [Examples](#examples)
18
21
  5. [Project Information](#project-information)
19
22
 
23
+
20
24
  ## Introduction
21
25
 
22
26
  T.B.C.
23
27
 
28
+
24
29
  ## Installation & usage
25
30
 
26
31
  Install using `gem install recls-ruby` or add it to your `Gemfile`.
27
32
 
33
+
28
34
  ## Components
29
35
 
30
36
  The main components of **recls.Ruby** are:
@@ -32,36 +38,267 @@ The main components of **recls.Ruby** are:
32
38
  * the ``Recls`` module; and
33
39
  * the ``Recls::Entry`` class
34
40
 
41
+
35
42
  ### The ``Recls`` module
36
43
 
37
44
  T.B.C.
38
45
 
46
+
39
47
  ### The ``Recls::Entry`` class
40
48
 
41
- T.B.C.
49
+ This class represents a file-system entry, and is created either by the `Recls.stat()` method, or is returned from the searches (see above). It has the following (simplified) interface:
50
+
51
+ ```Ruby
52
+ module Recls
53
+
54
+ # A file-system entry
55
+ class Entry
56
+
57
+ # ##########################
58
+ # Name-related attributes
59
+
60
+ # (+String+) A normalised form of #path that can be used in comparisons
61
+ attr_reader :compare_path
62
+
63
+ # (+String+) The full-path of the instance
64
+ attr_reader :path
65
+ # (+String+) The (Windows) short-form of #path, or +nil+ if not on Windows
66
+ attr_reader :short_path
67
+ # (+String+) The (Windows) drive. +nil+ if does not exist
68
+ attr_reader :drive
69
+ # (+String+) The full path of the entry's directory (taking into account the
70
+ # #drive if on Windows)
71
+ attr_reader :directory_path
72
+ alias_method :dirname, :directory_path
73
+ # (+String+) The entry's directory (excluding the #drive if on Windows)
74
+ attr_reader :directory
75
+ # (+[ String ]+) An array of directory parts, where each part ends in Recls::PATH_NAME_SEPARATOR
76
+ attr_reader :directory_parts
77
+ # (+String+) The entry's file name (combination of #stem + #extension)
78
+ attr_reader :file_full_name
79
+ # (+String+) The (Windows) short-form of #basename, or +nil+ if not on Windows
80
+ attr_reader :file_short_name
81
+ alias_method :basename, :file_full_name
82
+ # (+String+) The entry's file stem
83
+ attr_reader :file_name_only
84
+ alias_method :stem, :file_name_only
85
+ # (+String+) The entry's file extension
86
+ attr_reader :file_extension
87
+ alias_method :extension, :file_extension
88
+ # (+String+) The search directory if specified; +nil+ otherwise
89
+ attr_reader :search_directory
90
+ # (+String+) The #path relative to #search_directory; +nil+ if no search directory specified
91
+ attr_reader :search_relative_path
92
+ # (+String+) The #directory relative to #search_directory; +nil+ if no search directory specified
93
+ attr_reader :search_relative_directory
94
+ # (+String+) The #directory_path relative to #search_directory; +nil+ if no search directory specified
95
+ attr_reader :search_relative_directory_path
96
+ # (+[ String ]+) The #directory_parts relative to #search_directory; +nil+ if no search directory specified
97
+ attr_reader :search_relative_directory_parts
98
+
99
+ # ##########################
100
+ # Nature attributes
101
+
102
+ # indicates whether the given entry existed at the time the entry
103
+ # instance was created
104
+ def exist?
105
+ . . .
106
+ end
107
+
108
+ # indicates whether the given entry is hidden
109
+ def hidden?
110
+ . . .
111
+ end
112
+
113
+ # indicates whether the given entry is readonly
114
+ def readonly?
115
+ . . .
116
+ end
117
+
118
+ if Recls::Ximpl::OS::OS_IS_WINDOWS
119
+
120
+ # [WINDOWS-ONLY] Indicates whether the entry has the *system* bit
121
+ def system?
122
+ . . .
123
+ end
124
+
125
+ # [WINDOWS-ONLY] Indicates whether the entry has the *archive* bit
126
+ def archive?
127
+ . . .
128
+ end
129
+
130
+ # [WINDOWS-ONLY] Indicates whether the entry is a device
131
+ def device?
132
+ . . .
133
+ end
134
+
135
+ # [WINDOWS-ONLY] Indicates whether the entry is *normal*
136
+ def normal?
137
+ . . .
138
+ end
139
+
140
+ # [WINDOWS-ONLY] Indicates whether the entry has the *temporary* bit
141
+ def temporary?
142
+ . . .
143
+ end
144
+
145
+ # [WINDOWS-ONLY] Indicates whether the entry has the *compressed* bit
146
+ def compressed?
147
+ . . .
148
+ end
149
+
150
+ # [WINDOWS-ONLY] Indicates whether the entry has the *encrypted* bit
151
+ def encrypted?
152
+ . . .
153
+ end
154
+ end
155
+
156
+ # indicates whether the given entry represents a directory
157
+ def directory?
158
+ . . .
159
+ end
160
+
161
+ alias_method :dir?, :directory?
162
+
163
+ # indicates whether the given entry represents a file
164
+ def file?
165
+ . . .
166
+ end
167
+
168
+ # indicates whether the given entry represents a link
169
+ def link?
170
+ . . .
171
+ end
172
+
173
+ # indicates whether the given entry represents a socket
174
+ def socket?
175
+ . . .
176
+ end
177
+
178
+ # ##########################
179
+ # Size attributes
180
+
181
+ # indicates the size of the given entry
182
+ def size
183
+ . . .
184
+ end
185
+
186
+ # ##########################
187
+ # File-system entry attributes
188
+
189
+ # indicates the device of the given entry
190
+ #
191
+ # On Windows, this will be 0 if the entry cannot be
192
+ # opened
193
+ def dev
194
+ . . .
195
+ end
196
+
197
+ # indicates the ino of the given entry
198
+ #
199
+ # On Windows, this will be 0 if the entry cannot be
200
+ # opened
201
+ def ino
202
+ . . .
203
+ end
204
+
205
+ # number of links to the given entry
206
+ #
207
+ # On Windows, this will be 0 if the entry cannot be
208
+ # opened
209
+ def nlink
210
+ . . .
211
+ end
212
+
213
+ # ##########################
214
+ # Time attributes
215
+
216
+ # indicates the last access time of the entry
217
+ def last_access_time
218
+ . . .
219
+ end
220
+
221
+ # indicates the modification time of the entry
222
+ def modification_time
223
+ . . .
224
+ end
225
+
226
+ # ##########################
227
+ # Comparison
228
+
229
+ # determines whether rhs is an instance of Entry and
230
+ # refers to the same path
231
+ def eql?(rhs)
232
+ . . .
233
+ end
234
+
235
+ # determines whether rhs refers to the same path
236
+ def ==(rhs)
237
+ . . .
238
+ end
239
+
240
+ # compares this instance with rhs
241
+ def <=>(rhs)
242
+ . . .
243
+ end
244
+
245
+ # the hash
246
+ def hash
247
+ . . .
248
+ end
249
+
250
+ # ##########################
251
+ # Conversion
252
+
253
+ # represents the entry as a string (in the form of
254
+ # the full path)
255
+ def to_s
256
+ . . .
257
+ end
258
+
259
+ # represents the entry as a string (in the form of
260
+ # the full path)
261
+ def to_str
262
+ . . .
263
+ end
264
+ end # class Entry
265
+ end # module Recls
266
+
267
+
268
+ # ############################## end of file ############################# #
269
+
270
+
271
+ ```
272
+
42
273
 
43
274
  ## Examples
44
275
 
45
276
  Examples are provided in the ```examples``` directory, along with a markdown description for each. A detailed list TOC of them is provided in [EXAMPLES.md](./EXAMPLES.md).
46
277
 
278
+
47
279
  ## Project Information
48
280
 
281
+
49
282
  ### Where to get help
50
283
 
51
284
  [GitHub Page](https://github.com/synesissoftware/recls.Ruby "GitHub Page")
52
285
 
286
+
53
287
  ### Contribution guidelines
54
288
 
55
289
  Defect reports, feature requests, and pull requests are welcome on https://github.com/synesissoftware/recls.Ruby.
56
290
 
291
+
57
292
  ### Dependencies
58
293
 
59
294
  None
60
295
 
296
+
61
297
  ### Dependents
62
298
 
63
299
  **recls.Ruby** is used in the **[libCLImate.Ruby](https://github.com/synesissoftware/libCLImate.Ruby)** library.
64
300
 
301
+
65
302
  ### Related projects
66
303
 
67
304
  * [**recls**](https://github.com/synesissoftware/recls/)
@@ -69,13 +306,17 @@ None
69
306
  * [**recls.NET**](https://github.com/synesissoftware/recls.NET/)
70
307
  * [**recls.Python**](https://github.com/synesissoftware/recls.Python/)
71
308
 
309
+
72
310
  ### License
73
311
 
74
312
  **recls.Ruby** is released under the 3-clause BSD license. See [LICENSE](./LICENSE) for details.
75
313
 
314
+
76
315
  ### Compatibility
77
316
 
78
317
  For v2.8.x onwards, recls.Ruby is compatible only with Ruby 2.0+; all other
79
318
  past and current versions work with Ruby 1.9.3+.
80
319
 
81
320
 
321
+ <!-- ########################### end of file ########################### -->
322
+
@@ -39,39 +39,42 @@ attribute is used to display the relative path.
39
39
 
40
40
  ```
41
41
  files in current directory:
42
- build_gem.cmd
43
- build_gem.sh
44
- CHANGES.md
45
- EXAMPLES.md
46
- generate_rdoc.sh
47
- LICENSE
48
- Rakefile
49
- README.md
50
- recls.gemspec
51
- run_all_unit_tests.sh
42
+ build_gem.cmd
43
+ build_gem.sh
44
+ CHANGES.md
45
+ EXAMPLES.md
46
+ generate_rdoc.sh
47
+ LICENSE
48
+ Rakefile
49
+ README.md
50
+ recls.gemspec
51
+ run_all_unit_tests.sh
52
52
 
53
53
  directories in current directory:
54
- doc
55
- examples
56
- lib
57
- old-gems
58
- test
54
+ doc
55
+ examples
56
+ lib
57
+ old-gems
58
+ test
59
59
 
60
60
  files and directories in current directory:
61
- build_gem.cmd
62
- build_gem.sh
63
- CHANGES.md
64
- doc
65
- examples
66
- EXAMPLES.md
67
- generate_rdoc.sh
68
- lib
69
- LICENSE
70
- old-gems
71
- Rakefile
72
- README.md
73
- recls.gemspec
74
- run_all_unit_tests.sh
75
- test
61
+ build_gem.cmd
62
+ build_gem.sh
63
+ CHANGES.md
64
+ doc
65
+ examples
66
+ EXAMPLES.md
67
+ generate_rdoc.sh
68
+ lib
69
+ LICENSE
70
+ old-gems
71
+ Rakefile
72
+ README.md
73
+ recls.gemspec
74
+ run_all_unit_tests.sh
75
+ test
76
76
  ```
77
77
 
78
+
79
+ <!-- ########################### end of file ########################### -->
80
+