libpath-ruby 0.2.2.3 → 0.2.4
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/AUTHORS.md +21 -0
- data/CHANGES.md +183 -0
- data/CONTRIBUTING.md +36 -0
- data/EXAMPLES.md +8 -0
- data/FAQ.md +27 -0
- data/INSTALL.md +41 -0
- data/LICENSE +2 -3
- data/NEWS.md +39 -0
- data/README.md +67 -6
- data/Rakefile +21 -0
- data/SECURITY.md +23 -0
- data/TODO.md +26 -0
- data/examples/path_from_arg0.md +1 -1
- data/lib/libpath/constants/unix.rb +3 -2
- data/lib/libpath/constants/windows.rb +3 -2
- data/lib/libpath/constants.rb +1 -0
- data/lib/libpath/diagnostics/parameter_checking.rb +1 -0
- data/lib/libpath/diagnostics.rb +1 -0
- data/lib/libpath/exceptions/libpath_base_exception.rb +3 -3
- data/lib/libpath/exceptions/malformed_name_exception.rb +3 -3
- data/lib/libpath/exceptions.rb +1 -0
- data/lib/libpath/form/unix.rb +3 -3
- data/lib/libpath/form/windows.rb +3 -3
- data/lib/libpath/form.rb +1 -0
- data/lib/libpath/internal_/array.rb +1 -1
- data/lib/libpath/internal_/platform.rb +1 -1
- data/lib/libpath/internal_/string.rb +1 -1
- data/lib/libpath/internal_/unix/form.rb +3 -5
- data/lib/libpath/internal_/windows/drive.rb +1 -1
- data/lib/libpath/internal_/windows/form.rb +4 -6
- data/lib/libpath/libpath.rb +1 -1
- data/lib/libpath/path/unix.rb +3 -3
- data/lib/libpath/path/windows.rb +3 -3
- data/lib/libpath/path.rb +1 -0
- data/lib/libpath/util/unix.rb +3 -3
- data/lib/libpath/util/windows.rb +4 -4
- data/lib/libpath/util.rb +1 -0
- data/lib/libpath/version.rb +5 -4
- data/lib/libpath.rb +1 -0
- metadata +28 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f38d2c3fc9f5f9189d5691f3ed29e4f1be00968e7890034de57b1b76c1220bf8
|
|
4
|
+
data.tar.gz: 00cdf5f1f51fe74a069d0ee58ded5be63ede918fceb9cf5c47d7bde5db0ebda0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3c068c940534afe5d30198b19fdc059c611ea5beb78a4a35a43206b77b7520b7c871a5ed681d4ee3330beaa6c6343b16e98b578f068b83c11ca05a6cabf1e686
|
|
7
|
+
data.tar.gz: 2cef11088384acdbf795bba0df4bcae10e2fc3f0635144340eb7c8bb45a31a8f645493672eb4c00f8b815efdf342f0e21758af50987141e33e524413ea437eaf
|
data/AUTHORS.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# libpath.Ruby - Authors <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Major Contributors
|
|
5
|
+
|
|
6
|
+
| Name | GitHub |
|
|
7
|
+
| ----------- | --------------------------------- |
|
|
8
|
+
| Matt Wilson | [mwsis](https://github.com/mwsis) |
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Defect reports, fixes and suggestions (for which we are very grateful)
|
|
12
|
+
|
|
13
|
+
| Name | GitHub |
|
|
14
|
+
| ----------- | --------------------------------- |
|
|
15
|
+
| \<none> | |
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Contributions are welcomed.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
<!-- ########################### end of file ########################### -->
|
data/CHANGES.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# libpath.Ruby - Changes <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## 0.2.4 - 27th August 2026
|
|
5
|
+
|
|
6
|
+
* renamed **libpath.gemspec** to **libpath-ruby.gemspec** so the filename stem matches `spec.name`;
|
|
7
|
+
* **libpath-ruby.gemspec**: `required_ruby_version` is the range `>= 2.0`; **Gemfile.lock** and **.ruby-version** excluded from `spec.files`; `spec.summary` matches the README tagline; packaged **AUTHORS**, **CHANGES**, **CONTRIBUTING**, **EXAMPLES**, **FAQ**, **INSTALL**, **NEWS**, **SECURITY**, **TODO**;
|
|
8
|
+
* **Gemfile** sets `lockfile false` when Bundler supports it; stop tracking **Gemfile.lock**;
|
|
9
|
+
* CI uses `bundler-cache: false` and explicit `bundle install`; **Warnings** job on Ruby **3.4**; `gem build libpath-ruby.gemspec`;
|
|
10
|
+
* updated **run_all_unit_tests.sh** (from https://github.com/synesissoftware/misc-dev-scripts) to skip **tput** when **$TERM** is unset or stdout is not a TTY;
|
|
11
|
+
* library source **Home:** URLs now use `https`;
|
|
12
|
+
* workarounds for avoiding potentially modifying frozen strings;
|
|
13
|
+
* **README.md**: tagline before badges; canonical badge row; **Dependencies** (Efferent / Afferent); related projects; License → `./LICENSE`;
|
|
14
|
+
* **EXAMPLES.md** example links are repo-relative (`./examples/…`);
|
|
15
|
+
* `elide_redundant_path_name_separators!` is freeze-safe (Ruby 3.4 `FrozenError` on a frozen remainder, e.g. malformed UNC);
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 0.2.3 - 15th August 2026
|
|
19
|
+
|
|
20
|
+
* added `# frozen_string_literal: true` to all **lib/** sources;
|
|
21
|
+
* completed **EXAMPLES.md** (EOF marker; table alignment);
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## 0.2.2.3 - 13th April 2024
|
|
25
|
+
|
|
26
|
+
* warnings fixes;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## 0.2.2.2 - 7th April 2024
|
|
30
|
+
|
|
31
|
+
* merged **tidying** into **master**;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 0.2.2.1 - 6th April 2024
|
|
35
|
+
|
|
36
|
+
* project boilerplate;
|
|
37
|
+
* canonicalisation of layout;
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## 0.2.2 - 18th May 2019
|
|
41
|
+
|
|
42
|
+
* minor fix to source;
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## 0.2.1 - 16th April 2019
|
|
46
|
+
|
|
47
|
+
* added `#to_s` attribute to Path classes;
|
|
48
|
+
* added example **examples/path_from_arg0.rb**;
|
|
49
|
+
* significant improvements to documentation;
|
|
50
|
+
* added **README.md**;
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## 0.2.0.1 - 16th April 2019
|
|
54
|
+
|
|
55
|
+
* significant improvements to documentation;
|
|
56
|
+
* added **.ruby-version-exclusions**;
|
|
57
|
+
* gemspec requires Ruby 2.0+;
|
|
58
|
+
* updated **run_all_unit_tests.sh** (from **misc-dev-scripts**);
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## 0.2.0 - 30th January 2019
|
|
62
|
+
|
|
63
|
+
* added **Constants**, **Exceptions**, and `Util#name_is_malformed?()`;
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 0.1.1.2 - 30th January 2019
|
|
67
|
+
|
|
68
|
+
* fixed `ParsedPath` compare-path attributes on Windows;
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## 0.1.1.1 - 30th January 2019
|
|
72
|
+
|
|
73
|
+
* various fixes to path-handling;
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## 0.1.0 - 28th January 2019
|
|
77
|
+
|
|
78
|
+
* added `LibPath::Path(::Unix|::Windows)::ParsedPath`;
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
## 0.0.20 - 27th January 2019
|
|
82
|
+
|
|
83
|
+
* Windows compatibility;
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 0.0.19 - 27th January 2019
|
|
87
|
+
|
|
88
|
+
* further path-handling modifications;
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## 0.0.18 - 27th January 2019
|
|
92
|
+
|
|
93
|
+
* handling redundant path-name separators;
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## 0.0.17 - 27th January 2019
|
|
97
|
+
|
|
98
|
+
* fixed `split_path()` for repeated internal separators;
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## 0.0.16 - 27th January 2019
|
|
102
|
+
|
|
103
|
+
* improved slash correction on Windows (`/` to `\`);
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## 0.0.15 - 25th January 2019
|
|
107
|
+
|
|
108
|
+
* added `LibPath::Util(::Unix|::Windows).derive_relative_path()`;
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## 0.0.14 - 25th January 2019
|
|
112
|
+
|
|
113
|
+
* refactored `classify_path()`;
|
|
114
|
+
* renamed `path_is_drived?()` to `path_is_letter_drived?()`;
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
## 0.0.13 - 25th January 2019
|
|
118
|
+
|
|
119
|
+
* added `LibPath::Form(::Unix|::Windows).classify_path()`;
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
## 0.0.12 - 21st January 2019
|
|
123
|
+
|
|
124
|
+
* fix;
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
## 0.0.11 - 21st January 2019
|
|
128
|
+
|
|
129
|
+
* further tidying of Windows Form functions;
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
## 0.0.10 - 20th January 2019
|
|
133
|
+
|
|
134
|
+
* improved `get_windows_volume()` for complex cases;
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
## 0.0.9 - 20th January 2019
|
|
138
|
+
|
|
139
|
+
* `get_windows_volume()` obtains volume form as third returned element;
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## 0.0.8 - 20th January 2019
|
|
143
|
+
|
|
144
|
+
* added `combine_paths()` and `make_path_absolute()`;
|
|
145
|
+
* added `Form::Windows.path_is_drived?()`;
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
## 0.0.7 - 19th January 2019
|
|
149
|
+
|
|
150
|
+
* merge;
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
## 0.0.6 - 17th January 2019
|
|
154
|
+
|
|
155
|
+
* fix;
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
## 0.0.5 - 9th January 2019
|
|
159
|
+
|
|
160
|
+
* added `Util(::Unix|::Windows).make_path_canonical()`;
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
## 0.0.4 - 9th January 2019
|
|
164
|
+
|
|
165
|
+
* added `Form.split_path()` for Unix and Windows;
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
## 0.0.3 - 9th January 2019
|
|
169
|
+
|
|
170
|
+
* added internal Form API functions;
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
## 0.0.2 - 8th January 2019
|
|
174
|
+
|
|
175
|
+
* added Form predicates `path_is_absolute?`, `path_is_homed?`, `path_is_rooted?`, and Windows `path_is_UNC?`;
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
## 0.0.1 - 8th January 2019
|
|
179
|
+
|
|
180
|
+
* initial version;
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
<!-- ########################### end of file ########################### -->
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# libpath.Ruby - Contributing <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Table of Contents <!-- omit in toc -->
|
|
5
|
+
|
|
6
|
+
- [Defects and features](#defects-and-features)
|
|
7
|
+
- [Pull requests](#pull-requests)
|
|
8
|
+
- [Tests](#tests)
|
|
9
|
+
- [License](#license)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Defects and features
|
|
13
|
+
|
|
14
|
+
Open an issue on https://github.com/synesissoftware/libpath.Ruby/issues.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Pull requests
|
|
18
|
+
|
|
19
|
+
Pull requests are welcome on https://github.com/synesissoftware/libpath.Ruby. Keep diffs local to the change; match existing indentation (2 spaces in Ruby) and the Synesis markdown set (**README.md**, **CHANGES.md**, **NEWS.md**, **TODO.md**, **INSTALL.md**, **CONTRIBUTING.md**, **SECURITY.md**).
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Tests
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
bundle exec rake test
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
or `./run_all_unit_tests.sh`.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## License
|
|
32
|
+
|
|
33
|
+
Contributions are accepted under the 3-clause BSD license. See [LICENSE](./LICENSE).
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
<!-- ########################### end of file ########################### -->
|
data/EXAMPLES.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# libpath.Ruby - Examples <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|Name|Source & Description|Summary|
|
|
4
|
+
|---|---|---|
|
|
5
|
+
|**path_from_arg0**|[examples/path_from_arg0.rb](./examples/path_from_arg0.rb)<br/>[examples/path_from_arg0.md](./examples/path_from_arg0.md)|Simple example illustrating creation of an instance of `LibPath::Path::ParsedPath`, and obtaining its attributes|
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
<!-- ########################### end of file ########################### -->
|
data/FAQ.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# libpath.Ruby - FAQ <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
The FAQ list is under (constant) development. If you post a question on the
|
|
4
|
+
[Issues](https://github.com/synesissoftware/libpath.Ruby/issues) forum
|
|
5
|
+
it will be used to create one.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Table of Contents <!-- omit in toc -->
|
|
9
|
+
|
|
10
|
+
- [Q1: "How do I install this library?"](#q1-how-do-i-install-this-library)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# FAQs: <!-- omit in toc -->
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Q1: "How do I install this library?"
|
|
17
|
+
|
|
18
|
+
Install via **gem**:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
gem install libpath-ruby
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
See [README.md](./README.md) for usage.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
<!-- ########################### end of file ########################### -->
|
data/INSTALL.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# libpath.Ruby - Installation and Use <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Table of Contents <!-- omit in toc -->
|
|
5
|
+
|
|
6
|
+
- [Install the gem](#install-the-gem)
|
|
7
|
+
- [From a source checkout](#from-a-source-checkout)
|
|
8
|
+
- [Using the library](#using-the-library)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Install the gem
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
gem install libpath-ruby
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
or add to a **Gemfile**:
|
|
18
|
+
|
|
19
|
+
```Ruby
|
|
20
|
+
gem 'libpath-ruby'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
then `bundle install`.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## From a source checkout
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
bundle install
|
|
30
|
+
bundle exec rake test
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Using the library
|
|
35
|
+
|
|
36
|
+
```Ruby
|
|
37
|
+
require 'libpath'
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
<!-- ########################### end of file ########################### -->
|
data/LICENSE
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
libpath.Ruby - BSD 3-Clause License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems
|
|
4
4
|
Copyright (c) 2019, Matthew Wilson and Synesis Software
|
|
5
5
|
All rights reserved.
|
|
6
6
|
|
|
7
7
|
Redistribution and use in source and binary forms, with or without
|
|
8
|
-
modification, are permitted provided that the following conditions are
|
|
9
|
-
met:
|
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
|
10
9
|
|
|
11
10
|
1. Redistributions of source code must retain the above copyright notice,
|
|
12
11
|
this list of conditions and the following disclaimer.
|
data/NEWS.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# libpath.Ruby - News <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
| Date | News Item |
|
|
4
|
+
| ----------------- | -------------------------------------------------------------------------------------------- |
|
|
5
|
+
| 27th August 2026 | [**libpath.Ruby** 0.2.4](https://github.com/synesissoftware/libpath.Ruby/releases/tag/0.2.4) |
|
|
6
|
+
| 15th August 2026 | [**libpath.Ruby** 0.2.3](https://github.com/synesissoftware/libpath.Ruby/releases/tag/0.2.3) |
|
|
7
|
+
| 13th April 2024 | [**libpath.Ruby** 0.2.2.3](https://github.com/synesissoftware/libpath.Ruby/releases/tag/0.2.2.3) |
|
|
8
|
+
| 7th April 2024 | **libpath.Ruby** 0.2.2.2 released |
|
|
9
|
+
| 6th April 2024 | **libpath.Ruby** 0.2.2.1 released |
|
|
10
|
+
| 18th May 2019 | **libpath.Ruby** 0.2.2 released |
|
|
11
|
+
| 16th April 2019 | **libpath.Ruby** 0.2.1 released |
|
|
12
|
+
| 16th April 2019 | **libpath.Ruby** 0.2.0.1 released |
|
|
13
|
+
| 30th January 2019 | **libpath.Ruby** 0.2.0 released |
|
|
14
|
+
| 30th January 2019 | **libpath.Ruby** 0.1.1.2 released |
|
|
15
|
+
| 30th January 2019 | **libpath.Ruby** 0.1.1.1 released |
|
|
16
|
+
| 28th January 2019 | **libpath.Ruby** 0.1.0 released |
|
|
17
|
+
| 27th January 2019 | **libpath.Ruby** 0.0.20 released |
|
|
18
|
+
| 27th January 2019 | **libpath.Ruby** 0.0.19 released |
|
|
19
|
+
| 27th January 2019 | **libpath.Ruby** 0.0.18 released |
|
|
20
|
+
| 27th January 2019 | **libpath.Ruby** 0.0.17 released |
|
|
21
|
+
| 27th January 2019 | **libpath.Ruby** 0.0.16 released |
|
|
22
|
+
| 25th January 2019 | **libpath.Ruby** 0.0.15 released |
|
|
23
|
+
| 25th January 2019 | **libpath.Ruby** 0.0.14 released |
|
|
24
|
+
| 25th January 2019 | **libpath.Ruby** 0.0.13 released |
|
|
25
|
+
| 21st January 2019 | **libpath.Ruby** 0.0.12 released |
|
|
26
|
+
| 21st January 2019 | **libpath.Ruby** 0.0.11 released |
|
|
27
|
+
| 20th January 2019 | **libpath.Ruby** 0.0.10 released |
|
|
28
|
+
| 20th January 2019 | **libpath.Ruby** 0.0.9 released |
|
|
29
|
+
| 20th January 2019 | **libpath.Ruby** 0.0.8 released |
|
|
30
|
+
| 19th January 2019 | **libpath.Ruby** 0.0.7 released |
|
|
31
|
+
| 17th January 2019 | **libpath.Ruby** 0.0.6 released |
|
|
32
|
+
| 9th January 2019 | **libpath.Ruby** 0.0.5 released |
|
|
33
|
+
| 9th January 2019 | **libpath.Ruby** 0.0.4 released |
|
|
34
|
+
| 9th January 2019 | **libpath.Ruby** 0.0.3 released |
|
|
35
|
+
| 8th January 2019 | **libpath.Ruby** 0.0.2 released |
|
|
36
|
+
| 8th January 2019 | **libpath.Ruby** 0.0.1 released |
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<!-- ########################### end of file ########################### -->
|
data/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# libpath.Ruby <!-- omit in toc -->
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Path parsing library, for Ruby
|
|
4
4
|
|
|
5
|
+

|
|
6
|
+
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
5
7
|
[](https://badge.fury.io/rb/libpath-ruby)
|
|
8
|
+
[](https://github.com/synesissoftware/libpath.Ruby/commits/master)
|
|
9
|
+
[](https://github.com/synesissoftware/libpath.Ruby/actions/workflows/ruby.yml)
|
|
6
10
|
|
|
7
11
|
|
|
8
12
|
## Table of Contents <!-- omit in toc -->
|
|
@@ -14,6 +18,13 @@
|
|
|
14
18
|
- [Project Information](#project-information)
|
|
15
19
|
- [Where to get help](#where-to-get-help)
|
|
16
20
|
- [Contribution guidelines](#contribution-guidelines)
|
|
21
|
+
- [Dependencies](#dependencies)
|
|
22
|
+
- [Efferent (fan-out)](#efferent-fan-out)
|
|
23
|
+
- [Runtime Dependencies (aka "Normal Dependencies")](#runtime-dependencies-aka-normal-dependencies)
|
|
24
|
+
- [Development Dependencies](#development-dependencies)
|
|
25
|
+
- [Afferent (fan-in)](#afferent-fan-in)
|
|
26
|
+
- [Runtime dependents](#runtime-dependents)
|
|
27
|
+
- [Development dependents](#development-dependents)
|
|
17
28
|
- [Related projects](#related-projects)
|
|
18
29
|
- [License](#license)
|
|
19
30
|
|
|
@@ -22,6 +33,8 @@
|
|
|
22
33
|
|
|
23
34
|
**libpath** is a path-parsing and utility library. It is concerned entirely with paths, as opposed to file-system entities.
|
|
24
35
|
|
|
36
|
+
The first **libpath** library was a C library with a C++ wrapper. There have been several implementations in other languages. **libpath.Ruby** is the Ruby version.
|
|
37
|
+
|
|
25
38
|
|
|
26
39
|
## Installation
|
|
27
40
|
|
|
@@ -39,9 +52,18 @@ Use via **require**, as in:
|
|
|
39
52
|
require 'libpath'
|
|
40
53
|
```
|
|
41
54
|
|
|
55
|
+
|
|
42
56
|
## Components
|
|
43
57
|
|
|
44
|
-
|
|
58
|
+
The main components of **libpath.Ruby** are:
|
|
59
|
+
|
|
60
|
+
* **`LibPath::Form`** — path-form classification and probes (`classify_path`, `path_is_absolute?`, `path_is_homed?`, `path_is_rooted?`, `name_is_malformed?`);
|
|
61
|
+
* **`LibPath::Path::ParsedPath`** — structured parse of a path string into directory / file / search-relative attributes (platform-selected Unix or Windows implementation);
|
|
62
|
+
* **`LibPath::Util`** — path combination and rewriting (`combine_paths`, `derive_relative_path`, `make_compare_path`, `make_path_absolute`, `make_path_canonical`);
|
|
63
|
+
* **`LibPath::Constants`** — platform path-name / path / shell character constants;
|
|
64
|
+
* **`LibPath::Exceptions`** — path-related exceptions such as `MalformedNameException`;
|
|
65
|
+
|
|
66
|
+
Platform-specific details live under `::Unix` / `::Windows` submodules; the top-level `Form`, `Path`, and `Util` modules select the ambient OS automatically.
|
|
45
67
|
|
|
46
68
|
|
|
47
69
|
## Examples
|
|
@@ -62,17 +84,56 @@ Examples are provided in the ```examples``` directory, along with a markdown des
|
|
|
62
84
|
Defect reports, feature requests, and pull requests are welcome on https://github.com/synesissoftware/libpath.Ruby.
|
|
63
85
|
|
|
64
86
|
|
|
87
|
+
### Dependencies
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
#### Efferent (fan-out)
|
|
91
|
+
|
|
92
|
+
Libraries upon which **libpath.Ruby** depends:
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
##### Runtime Dependencies (aka "Normal Dependencies")
|
|
96
|
+
|
|
97
|
+
* \<none>;
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
##### Development Dependencies
|
|
101
|
+
|
|
102
|
+
* [**rake**](https://rubygems.org/gems/rake);
|
|
103
|
+
* [**test-unit**](https://rubygems.org/gems/test-unit);
|
|
104
|
+
* [**xqsr3**](https://github.com/synesissoftware/xqsr3);
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
#### Afferent (fan-in)
|
|
108
|
+
|
|
109
|
+
Projects that depend on **libpath.Ruby**:
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
##### Runtime dependents
|
|
113
|
+
|
|
114
|
+
* \<none>;
|
|
115
|
+
|
|
116
|
+
> **NOTE**: **[recls.Ruby](https://github.com/synesissoftware/recls.Ruby)** version 3+ is planned to depend on **libpath.Ruby** (it currently has its own path-parsing logic).
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
##### Development dependents
|
|
120
|
+
|
|
121
|
+
* \<none>;
|
|
122
|
+
|
|
123
|
+
|
|
65
124
|
### Related projects
|
|
66
125
|
|
|
67
|
-
**libpath
|
|
126
|
+
* [**libpath**](https://github.com/synesissoftware/libpath) (**C**/**C++**);
|
|
127
|
+
* [**libpath.Go**](https://github.com/synesissoftware/libpath.Go);
|
|
128
|
+
* [**libpath.Python**](https://github.com/synesissoftware/libpath.Python);
|
|
129
|
+
* [**libpath.Rust**](https://github.com/synesissoftware/libpath.Rust);
|
|
68
130
|
|
|
69
|
-
**libpath.Ruby**
|
|
131
|
+
**libpath.Ruby** is based on the C/C++ **libpath** library, which itself was prompted by a request on the [STLSoft](https://github.com/synesissoftware/STLSoft-1.10) project by my friend and esteemed programmer [Adi Shavit](https://github.com/adishavit).
|
|
70
132
|
|
|
71
133
|
|
|
72
134
|
### License
|
|
73
135
|
|
|
74
|
-
**libpath.Ruby** is released under the 3-clause BSD license. See LICENSE for details.
|
|
136
|
+
**libpath.Ruby** is released under the 3-clause BSD license. See [LICENSE](./LICENSE) for details.
|
|
75
137
|
|
|
76
138
|
|
|
77
139
|
<!-- ########################### end of file ########################### -->
|
|
78
|
-
|
data/Rakefile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Rakefile for libpath.Ruby
|
|
4
|
+
|
|
5
|
+
require 'rake/testtask'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Rake::TestTask.new do |tt|
|
|
9
|
+
|
|
10
|
+
tt.libs << 'lib'
|
|
11
|
+
tt.libs << 'test'
|
|
12
|
+
tt.name = 'test'
|
|
13
|
+
tt.test_files = FileList['test/**/tc_*.rb']
|
|
14
|
+
tt.verbose = true
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
task :default => :test
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# ############################## end of file ############################# #
|
data/SECURITY.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# libpath.Ruby - Security <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Table of Contents <!-- omit in toc -->
|
|
5
|
+
|
|
6
|
+
- [Reporting a vulnerability](#reporting-a-vulnerability)
|
|
7
|
+
- [Supported versions](#supported-versions)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Reporting a vulnerability
|
|
11
|
+
|
|
12
|
+
Please report security issues privately via GitHub Security Advisories on https://github.com/synesissoftware/libpath.Ruby/security, or by opening an issue if an advisory cannot be filed. Do not attach exploit proofs of concept against third-party systems.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Supported versions
|
|
16
|
+
|
|
17
|
+
| Version | Supported |
|
|
18
|
+
| ------- | --------- |
|
|
19
|
+
| 0.2.x | ✅ |
|
|
20
|
+
| < 0.2 | ❌ |
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<!-- ########################### end of file ########################### -->
|
data/TODO.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# libpath.Ruby - TODO <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Functional improvements
|
|
5
|
+
|
|
6
|
+
* [ ] quiet Ruby 3.4+ `literal string will be frozen in the future` warnings from `gsub!` in **lib/libpath/internal_/windows/form.rb** (tests already pass under `-W`);
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Performance improvements
|
|
10
|
+
|
|
11
|
+
* \<none>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Packaging improvements
|
|
15
|
+
|
|
16
|
+
* [x] ~~~rename gemspec so the filename stem matches `spec.name` (`libpath.gemspec` → **libpath-ruby.gemspec**)~~~;
|
|
17
|
+
* [x] ~~~obtain a **run_all_unit_tests.sh** (from **misc-dev-scripts**) that skips `tput` when `$TERM` is unset or stdout is not a TTY (CI: `tput: No value for $TERM and no -T specified`)~~~;
|
|
18
|
+
* [x] ~~~**Gemfile** `lockfile false`; stop tracking **Gemfile.lock**; CI `bundler-cache: false`~~~;
|
|
19
|
+
* [x] ~~~gemspec polish: README tagline as `spec.summary`, package docs, exclude **Gemfile.lock** / **.ruby-version**~~~;
|
|
20
|
+
* [x] ~~~README canonical structure (tagline before badges; **Dependencies**; CI badge → **ruby.yml**)~~~;
|
|
21
|
+
* [x] ~~~after the packaging/boilerplate/CI baseline: bump **VERSION** and align **CHANGES**/**NEWS**~~~;
|
|
22
|
+
* [ ] **git rm** **Gemfile.lock** when committing this lift (deleted in the work tree and gitignored; still in HEAD);
|
|
23
|
+
* [ ] this lift is on **bp-2**, which is not in CI `on.push.branches` (gold seven-name set); use a PR (unfiltered `pull_request:`) or merge to a listed branch to run push CI;
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
<!-- ########################### end of file ########################### -->
|
data/examples/path_from_arg0.md
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# ######################################################################## #
|
|
2
3
|
# File: libpath/constants/unix.rb
|
|
3
4
|
#
|
|
4
5
|
# Purpose: LibPath::Constants::Unix module
|
|
5
6
|
#
|
|
6
7
|
# Created: 29th January 2019
|
|
7
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
8
9
|
#
|
|
9
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
10
11
|
#
|
|
11
12
|
# Author: Matthew Wilson
|
|
12
13
|
#
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# ######################################################################## #
|
|
2
3
|
# File: libpath/constants/windows.rb
|
|
3
4
|
#
|
|
4
5
|
# Purpose: LibPath::Constants::Windows module
|
|
5
6
|
#
|
|
6
7
|
# Created: 29th January 2019
|
|
7
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
8
9
|
#
|
|
9
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
10
11
|
#
|
|
11
12
|
# Author: Matthew Wilson
|
|
12
13
|
#
|
data/lib/libpath/constants.rb
CHANGED
data/lib/libpath/diagnostics.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/exceptions/libpath_base_exception.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPathBaseException class
|
|
6
6
|
#
|
|
7
7
|
# Created: 30th January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/exceptions/malformed_name_exception.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: MalformedNameException class
|
|
6
6
|
#
|
|
7
7
|
# Created: 30th January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
data/lib/libpath/exceptions.rb
CHANGED
data/lib/libpath/form/unix.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/form/unix.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPath::Form::Unix module
|
|
6
6
|
#
|
|
7
7
|
# Created: 8th January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
data/lib/libpath/form/windows.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/form/windows.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPath::Form::Windows module
|
|
6
6
|
#
|
|
7
7
|
# Created: 8th January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
data/lib/libpath/form.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# :stopdoc:
|
|
3
3
|
|
|
4
4
|
|
|
@@ -73,11 +73,9 @@ module Unix # :nodoc:
|
|
|
73
73
|
# time
|
|
74
74
|
#
|
|
75
75
|
# @!visibility private
|
|
76
|
-
def self.elide_redundant_path_name_separators
|
|
77
|
-
|
|
78
|
-
s.gsub!(/\/\/+/, '/')
|
|
76
|
+
def self.elide_redundant_path_name_separators s # :nodoc:
|
|
79
77
|
|
|
80
|
-
s
|
|
78
|
+
s.gsub(/\/\/+/, '/')
|
|
81
79
|
end
|
|
82
80
|
|
|
83
81
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# :stopdoc:
|
|
3
3
|
|
|
4
4
|
|
|
@@ -79,11 +79,9 @@ module Windows # :nodoc:
|
|
|
79
79
|
# time
|
|
80
80
|
#
|
|
81
81
|
# @!visibility private
|
|
82
|
-
def self.elide_redundant_path_name_separators
|
|
83
|
-
|
|
84
|
-
s.gsub!(/[\\\/]{2,}/, '\\')
|
|
82
|
+
def self.elide_redundant_path_name_separators s # :nodoc:
|
|
85
83
|
|
|
86
|
-
s
|
|
84
|
+
s.gsub(/[\\\/]{2,}/, '\\')
|
|
87
85
|
end
|
|
88
86
|
|
|
89
87
|
# [INTERNAL] This function is undocumented, and subject to change at any
|
|
@@ -208,7 +206,7 @@ module Windows # :nodoc:
|
|
|
208
206
|
|
|
209
207
|
f1_volume, rem, frm = self.get_windows_volume s
|
|
210
208
|
|
|
211
|
-
self.elide_redundant_path_name_separators
|
|
209
|
+
rem = self.elide_redundant_path_name_separators rem
|
|
212
210
|
|
|
213
211
|
f1_volume.define_singleton_method(:form) { frm } if f1_volume
|
|
214
212
|
|
data/lib/libpath/libpath.rb
CHANGED
data/lib/libpath/path/unix.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/path/unix.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPath::Path::Unix module
|
|
6
6
|
#
|
|
7
7
|
# Created: 21st January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
data/lib/libpath/path/windows.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/path/windows.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPath::Path::Windows module
|
|
6
6
|
#
|
|
7
7
|
# Created: 21st January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
data/lib/libpath/path.rb
CHANGED
data/lib/libpath/util/unix.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/util/unix.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPath::Util::Unix module
|
|
6
6
|
#
|
|
7
7
|
# Created: 14th January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
data/lib/libpath/util/windows.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
# ######################################################################## #
|
|
3
3
|
# File: libpath/util/windows.rb
|
|
4
4
|
#
|
|
5
5
|
# Purpose: LibPath::Util::Windows module
|
|
6
6
|
#
|
|
7
7
|
# Created: 10th January 2019
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 15th August 2026
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
11
11
|
#
|
|
12
12
|
# Author: Matthew Wilson
|
|
13
13
|
#
|
|
@@ -492,7 +492,7 @@ module Windows
|
|
|
492
492
|
|
|
493
493
|
vol, rem, _ = _Internal_Windows_Form.get_windows_volume r
|
|
494
494
|
|
|
495
|
-
_Internal_Windows_Form.elide_redundant_path_name_separators
|
|
495
|
+
rem = _Internal_Windows_Form.elide_redundant_path_name_separators rem
|
|
496
496
|
|
|
497
497
|
r = "#{vol}#{rem}"
|
|
498
498
|
end
|
data/lib/libpath/util.rb
CHANGED
data/lib/libpath/version.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# ######################################################################## #
|
|
2
3
|
# File: libpath/version.rb
|
|
3
4
|
#
|
|
4
5
|
# Purpose: Version for libpath.Ruby library
|
|
5
6
|
#
|
|
6
7
|
# Created: 8th January 2019
|
|
7
|
-
# Updated:
|
|
8
|
+
# Updated: 27th August 2026
|
|
8
9
|
#
|
|
9
|
-
# Home:
|
|
10
|
+
# Home: https://github.com/synesissoftware/libpath.Ruby
|
|
10
11
|
#
|
|
11
12
|
# Author: Matthew Wilson
|
|
12
13
|
#
|
|
13
|
-
# Copyright (c) 2019-
|
|
14
|
+
# Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems
|
|
14
15
|
# Copyright (c) 2019, Matthew Wilson and Synesis Software
|
|
15
16
|
# All rights reserved.
|
|
16
17
|
#
|
|
@@ -50,7 +51,7 @@
|
|
|
50
51
|
module LibPath
|
|
51
52
|
|
|
52
53
|
# Current version of the libpath.Ruby library
|
|
53
|
-
VERSION = '0.2.
|
|
54
|
+
VERSION = '0.2.4'
|
|
54
55
|
|
|
55
56
|
private
|
|
56
57
|
# @!visibility private
|
data/lib/libpath.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: libpath-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Wilson
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: xqsr3
|
|
@@ -16,7 +15,7 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
18
|
+
version: 0.39.5
|
|
20
19
|
- - "<"
|
|
21
20
|
- !ruby/object:Gem::Version
|
|
22
21
|
version: '1.0'
|
|
@@ -26,20 +25,32 @@ dependencies:
|
|
|
26
25
|
requirements:
|
|
27
26
|
- - ">="
|
|
28
27
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: 0.
|
|
28
|
+
version: 0.39.5
|
|
30
29
|
- - "<"
|
|
31
30
|
- !ruby/object:Gem::Version
|
|
32
31
|
version: '1.0'
|
|
33
|
-
description:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
description: |
|
|
33
|
+
Path parsing library, for Ruby. libpath.Ruby is concerned entirely with
|
|
34
|
+
paths, as opposed to file-system entities. It classifies path form, parses
|
|
35
|
+
path strings, and rewrites/combines paths for Unix and Windows.
|
|
36
|
+
email:
|
|
37
|
+
- matthew@synesis.com.au
|
|
37
38
|
executables: []
|
|
38
39
|
extensions: []
|
|
39
40
|
extra_rdoc_files: []
|
|
40
41
|
files:
|
|
42
|
+
- AUTHORS.md
|
|
43
|
+
- CHANGES.md
|
|
44
|
+
- CONTRIBUTING.md
|
|
45
|
+
- EXAMPLES.md
|
|
46
|
+
- FAQ.md
|
|
47
|
+
- INSTALL.md
|
|
41
48
|
- LICENSE
|
|
49
|
+
- NEWS.md
|
|
42
50
|
- README.md
|
|
51
|
+
- Rakefile
|
|
52
|
+
- SECURITY.md
|
|
53
|
+
- TODO.md
|
|
43
54
|
- examples/path_from_arg0.md
|
|
44
55
|
- examples/path_from_arg0.rb
|
|
45
56
|
- lib/libpath.rb
|
|
@@ -119,11 +130,14 @@ files:
|
|
|
119
130
|
- test/unit/util/windows/tc_make_path_absolute.rb
|
|
120
131
|
- test/unit/util/windows/tc_make_path_canonical.rb
|
|
121
132
|
- test/unit/util/windows/ts_all.rb
|
|
122
|
-
homepage:
|
|
133
|
+
homepage: https://github.com/synesissoftware/libpath.Ruby
|
|
123
134
|
licenses:
|
|
124
135
|
- BSD-3-Clause
|
|
125
|
-
metadata:
|
|
126
|
-
|
|
136
|
+
metadata:
|
|
137
|
+
bug_tracker_uri: https://github.com/synesissoftware/libpath.Ruby/issues
|
|
138
|
+
changelog_uri: https://github.com/synesissoftware/libpath.Ruby/blob/master/CHANGES.md
|
|
139
|
+
homepage_uri: https://github.com/synesissoftware/libpath.Ruby
|
|
140
|
+
source_code_uri: https://github.com/synesissoftware/libpath.Ruby
|
|
127
141
|
rdoc_options: []
|
|
128
142
|
require_paths:
|
|
129
143
|
- lib
|
|
@@ -138,8 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
138
152
|
- !ruby/object:Gem::Version
|
|
139
153
|
version: '0'
|
|
140
154
|
requirements: []
|
|
141
|
-
rubygems_version: 3.
|
|
142
|
-
signing_key:
|
|
155
|
+
rubygems_version: 3.6.9
|
|
143
156
|
specification_version: 4
|
|
144
|
-
summary:
|
|
157
|
+
summary: Path parsing library, for Ruby
|
|
145
158
|
test_files: []
|