clasp-ruby 0.23.0.2 → 0.23.3

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHORS.md +21 -0
  3. data/CHANGES.md +313 -0
  4. data/CONTRIBUTING.md +36 -0
  5. data/EXAMPLES.md +11 -0
  6. data/FAQ.md +28 -0
  7. data/INSTALL.md +41 -0
  8. data/LICENSE +22 -21
  9. data/NEWS.md +65 -0
  10. data/README.md +83 -26
  11. data/Rakefile +21 -0
  12. data/SECURITY.md +23 -0
  13. data/TODO.md +24 -0
  14. data/examples/cr-example.rb +16 -16
  15. data/examples/flag_and_option_specifications.md +24 -24
  16. data/examples/flag_and_option_specifications.rb +15 -15
  17. data/examples/show_usage_and_version.md +16 -16
  18. data/examples/show_usage_and_version.rb +10 -11
  19. data/lib/clasp/arguments.rb +87 -88
  20. data/lib/clasp/clasp.rb +16 -12
  21. data/lib/clasp/cli.rb +136 -135
  22. data/lib/clasp/doc_.rb +3 -3
  23. data/lib/clasp/old_module.rb +9 -9
  24. data/lib/clasp/specifications.rb +326 -323
  25. data/lib/clasp/util/exceptions.rb +22 -23
  26. data/lib/clasp/util/value_parser.rb +100 -102
  27. data/lib/clasp/version.rb +13 -13
  28. data/lib/clasp-ruby.rb +9 -8
  29. data/lib/clasp.rb +9 -8
  30. data/test/scratch/test_list_command_line.rb +6 -6
  31. data/test/scratch/test_specifications.rb +14 -14
  32. data/test/scratch/test_usage.rb +5 -5
  33. data/test/scratch/test_usage_with_duplicate_specifications.rb +5 -5
  34. data/test/unit/tc_ARGV_rewrite.rb +36 -36
  35. data/test/unit/tc_arguments_1.rb +708 -708
  36. data/test/unit/tc_arguments_2.rb +43 -43
  37. data/test/unit/tc_arguments_3.rb +77 -77
  38. data/test/unit/tc_arguments_inspect.rb +55 -55
  39. data/test/unit/tc_cli.rb +4 -4
  40. data/test/unit/tc_default_value.rb +91 -91
  41. data/test/unit/tc_defaults_1.rb +38 -38
  42. data/test/unit/tc_examples_Arguments.rb +130 -130
  43. data/test/unit/tc_extras.rb +24 -24
  44. data/test/unit/tc_option_required.rb +38 -38
  45. data/test/unit/tc_option_value_aliases.rb +44 -44
  46. data/test/unit/tc_specifications.rb +7 -7
  47. data/test/unit/tc_typed_options.rb +200 -200
  48. data/test/unit/tc_usage.rb +69 -69
  49. data/test/unit/tc_with_action.rb +23 -23
  50. metadata +31 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6116d56077b53fd8d42a2f1275e08d5921982e2d4ffe425e9df637d6a7d97861
4
- data.tar.gz: 778800e1fcacd3b7ccbb6911c3251c5fcca73fef3447c01318b458c36ef7472a
3
+ metadata.gz: 2a5885da7e4fe5d1cf3ffbc0f67977a27c9efbdddd26b0840aaeba75b3a46076
4
+ data.tar.gz: e67e35318c346513794314ac8d76c5f0020210c75d1811431fa2a8f5020c23ce
5
5
  SHA512:
6
- metadata.gz: 56d7aa277b5f5441c9472d0bb1e8961ccd577ae6477e3ec82f5a932aa6033aa3bbd4506d290e664a4f74c1f2cf9915fb4bb7b41606f884a32e1f7a29dec0ab20
7
- data.tar.gz: 33474797746dfe908b5d083d4aaedf4922d9b2cd990b0264595f557c1075d70ef0aa07d0940e1d3ed94869c0a70b999fdc3a3677f64145b2b2e6578afd904f13
6
+ metadata.gz: '0684c8effc10586d10a238d6fd640d46c7d888c3ae4c61ea37e1734eb9c000efa8445c50e9aee7b26fb59d98bfea7e51a5b2b105ba778fe5e03e898470114299'
7
+ data.tar.gz: 7ae5f53aca0352e97186f61f497dfeefed3036e14d170e60589ab78cb5c1ca1c3d18c27b3971e5b126dc8e645fa9ebf7f394ca3915eb8f72dcdc0023c341db19
data/AUTHORS.md ADDED
@@ -0,0 +1,21 @@
1
+ # CLASP.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,313 @@
1
+ # CLASP.Ruby - Changes <!-- omit in toc -->
2
+
3
+
4
+ ## 0.23.3 - 27th August 2026
5
+
6
+ * renamed **CLASP.gemspec** to **clasp-ruby.gemspec** so the filename stem matches `spec.name`;
7
+ * **clasp-ruby.gemspec**: `required_ruby_version` is the range `>= 1.9.3` (dropped `< 4`); **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 clasp-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
+ * **README.md**: tagline before badges; dropped Downloads / GitHub-release badges; Dependencies (Efferent / Afferent);
12
+ * **EXAMPLES.md** example links are repo-relative (`./examples/…`); catalogued remaining example programs;
13
+ * library source **Home:** URLs now use `https`;
14
+
15
+
16
+ ## 0.23.2 - 15th August 2026
17
+
18
+ * added `# frozen_string_literal: true` to all **lib/** sources;
19
+
20
+
21
+ ## 0.23.1 - 6th March 2025
22
+
23
+ * warnings;
24
+ * dependencies updated;
25
+ * layout (to 2-space indents);
26
+
27
+
28
+ ## 0.23.0.2 - 20th January 2024
29
+
30
+ * simplifying tests using heredocs;
31
+ * minor documentation improvements;
32
+ * canonicalised all whitespace (to SPACEs not TABs);
33
+
34
+
35
+ ## 0.23.0.1 - 1st December 2023
36
+
37
+ * added attribute `CLASP::Arguments#double_slash_index`;
38
+ * updated dependencies;
39
+
40
+
41
+ ## 0.22.1 - 26th June 2022
42
+
43
+ * updated dependencies;
44
+
45
+
46
+ ## 0.22.0.1 - 22nd August 2020
47
+
48
+ * merging branches, to clear up last two changes;
49
+ * improved **CHANGES.md** markup (25th May 2020);
50
+
51
+
52
+ ## 0.22.0 - 29th April 2019
53
+
54
+ * `#action` attribute for flag and option specifications (which is used in **libCLImate.Ruby**, and can be used by any application);
55
+
56
+
57
+ ## 0.21.0 - 28th April 2019
58
+
59
+ * added typed values for options;
60
+
61
+
62
+ ## 0.20.3 - 19th April 2019
63
+
64
+ * fix inconsistency in handling `default_value` behaviour;
65
+
66
+
67
+ ## 0.20.2 - 19th April 2019
68
+
69
+ * restoring Ruby 1.9.3 compatibility;
70
+
71
+
72
+ ## 0.20.1.1 - 20th April 2019
73
+
74
+ * documentation improvements;
75
+
76
+
77
+ ## 0.20.1 - 19th April 2019
78
+
79
+ * fixed (ultimate) resolution of option argument specification;
80
+ * fixed defect in `CLASP::Arguments::OptionArgument#==()`;
81
+
82
+
83
+ ## 0.20.0 - 19th April 2019
84
+
85
+ * now uses `CLASP::OptionSpecification#default_value` (if non-nil) when option is specified without value (e.g. `"myprog --opt= -f1 -f2"`, `"myprog --opt"`);
86
+ * `CLASP.show_usage()` now indicates default value in list of known values for option, and recognises the `:default_indicator` option for changing the indicator from default of `(default)`;
87
+
88
+
89
+ ## 0.19.1.1 - 19th April 2019
90
+
91
+ * documentation improvements;
92
+ * preparatory refactoring;
93
+
94
+
95
+ ## 0.19.1 - 19th April 2019
96
+
97
+ * added missing `argument_specification` attribute to `CLASP::Arguments::FlagArgument` and `CLASP::Arguments::OptionArgument`, along with deprecated backwards-compatible `argument_alias`;
98
+
99
+
100
+ ## 0.19.0.1 - 19th April 2019
101
+
102
+ * fixed some documentation typos;
103
+
104
+
105
+ ## 0.19.0 - 13th April 2019
106
+
107
+ * added `CLASP::Arguments.load_specifications()`, which allows to load argument-specifications from `Hash` or from YAML;
108
+ * `CLASP::Arguments.load()` now implemented in terms of `CLASP::Arguments.load_specifications()`;
109
+ * `CLASP::FlagSpecification` and `CLASP::OptionSpecification` classes now compare against name (`String`) in `==()`;
110
+
111
+
112
+ ## 0.18.2 - 12th April 2019
113
+
114
+ * documentation improvements;
115
+
116
+
117
+ ## 0.18.1 - 11th April 2019
118
+
119
+ * completed [aA]lias(|es) => [sS]pecification(|s);
120
+
121
+
122
+ ## 0.18.0 - 10th April 2019
123
+
124
+ * changed `*Alias` classes to `*Specification`;
125
+ * `CLASP::Arguments#aliases` attribute is now changed to `#specifications`, and a [DEPRECATED] `#aliases` added;
126
+
127
+
128
+ ## 0.17.0 - 10th April 2019
129
+
130
+ * added `CLASP::Arguments.load()`, which allows to load argument-specifications from `Hash` or from YAML;
131
+
132
+
133
+ ## 0.16.1 - 10th April 2019
134
+
135
+ * minor adjustment to test case such that the library now compatible with Ruby 1.9.3+;
136
+
137
+
138
+ ## 0.16.0 - 19th March 2019
139
+
140
+ * added #program_name attribute and #find_flag() and #find_option() methods to CLASP::Arguments class; + added examples;
141
+
142
+
143
+ ## 0.15.2 - 19th March 2019
144
+
145
+ * fixed subtle defect (due to overloading of term 'options');
146
+
147
+
148
+ ## 0.15.1 - 19th March 2019
149
+
150
+ * tagged release;
151
+
152
+
153
+ ## 0.15.0 - 27th February 2019
154
+
155
+ * removed the ImmutableArray class, and associated unit-tests; ~ changed the 'flags', 'options', 'values' arrays to frozen Array instances;
156
+
157
+
158
+ ## 0.14.5 - 27th February 2019
159
+
160
+ * fixed a freeze vulnerability;
161
+
162
+
163
+ ## 0.14.3 - 8th January 2019
164
+
165
+ * fix;
166
+
167
+
168
+ ## 0.14.1.1 - 19th October 2018
169
+
170
+ * dependencies;
171
+
172
+
173
+ ## 0.14.1 - 1st October 2018
174
+
175
+ * 0.14;
176
+
177
+
178
+ ## 0.13.4 - 1st October 2018
179
+
180
+ * minor mods;
181
+
182
+
183
+ ## 0.13.3 - 2nd March 2018
184
+
185
+ * merge;
186
+
187
+
188
+ ## 0.13.2 - 1st March 2018
189
+
190
+ * fixed defect in CLASP.show_usage() and CLASP.show_version() parameter checking, which failed to permit new CLASP::Alias type in aliases array;
191
+
192
+
193
+ ## 0.13.1 - 7th February 2018
194
+
195
+ * fix;
196
+
197
+
198
+ ## 0.12.2 - 7th February 2018
199
+
200
+ * tagged release;
201
+
202
+
203
+ ## 0.12.1 - 1st January 2018
204
+
205
+ * added required_message;
206
+
207
+
208
+ ## 0.11.4 - 1st January 2018
209
+
210
+ * more tests, prior to adding support for required? attribute;
211
+
212
+
213
+ ## 0.11.3 - 1st January 2018
214
+
215
+ * minor improvements to documentation for Flag() & Option() creator methods;
216
+
217
+
218
+ ## 0.11.2 - 22nd June 2017
219
+
220
+ * fixed debug-visible warnings;
221
+
222
+
223
+ ## 0.11.1 - 1st January 2018
224
+
225
+ * tagged release;
226
+
227
+
228
+ ## 0.10.3 - 1st January 2018
229
+
230
+ * tagged release;
231
+
232
+
233
+ ## 0.10.2 - 11th June 2016
234
+
235
+ * added generate_rdoc.rb;
236
+
237
+
238
+ ## 0.10.1 - 10th June 2016
239
+
240
+ * Clasp module alias now moved to separate file, therefore separate require;
241
+
242
+
243
+ ## 0.9.2 - 9th June 2016
244
+
245
+ * added build_gem.sh;
246
+
247
+
248
+ ## 0.9.1 - 4th June 2016
249
+
250
+ * merge;
251
+
252
+
253
+ ## 0.7.8 - 4th June 2016
254
+
255
+ * changed syntax form of options to opt: from :opt =>;
256
+
257
+
258
+ ## 0.7.7 - 3rd June 2016
259
+
260
+ * layout;
261
+
262
+
263
+ ## 0.7.5 - 5th February 2018
264
+
265
+ * tagged release;
266
+
267
+
268
+ ## 0.7.4 - 5th February 2018
269
+
270
+ * tagged release;
271
+
272
+
273
+ ## 0.7.3 - 5th February 2018
274
+
275
+ * tagged release;
276
+
277
+
278
+ ## 0.7.2 - 5th February 2018
279
+
280
+ * tagged release;
281
+
282
+
283
+ ## 0.7.1 - 5th February 2018
284
+
285
+ * tagged release;
286
+
287
+
288
+ ## 0.6.10 - 5th February 2018
289
+
290
+ * merge;
291
+
292
+
293
+ ## 0.6.9 - 5th February 2018
294
+
295
+ * tagged release;
296
+
297
+
298
+ ## 0.6.8 - 5th February 2018
299
+
300
+ * tagged release;
301
+
302
+
303
+ ## 0.6.7 - 5th February 2018
304
+
305
+ * tagged release;
306
+
307
+
308
+ ## 0.6.5 - 5th February 2018
309
+
310
+ * tagged release;
311
+
312
+
313
+ <!-- ########################### end of file ########################### -->
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,36 @@
1
+ # CLASP.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/CLASP.Ruby/issues.
15
+
16
+
17
+ ## Pull requests
18
+
19
+ Pull requests are welcome on https://github.com/synesissoftware/CLASP.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,11 @@
1
+ # CLASP.Ruby - Examples <!-- omit in toc -->
2
+
3
+ |Name|Source & Description|Summary|
4
+ |---|---|---|
5
+ |**cr-example**|[examples/cr-example.rb](./examples/cr-example.rb)|Worked example of flags, options, values, aliases, **CLASP.show_usage()**, and **CLASP.show_version()**|
6
+ |**flag_and_option_specifications**|[examples/flag_and_option_specifications.rb](./examples/flag_and_option_specifications.rb)<br/>[examples/flag_and_option_specifications.md](./examples/flag_and_option_specifications.md)|Example illustrating various kinds of *flag* and *option* specifications|
7
+ |**show_usage_and_version**|[examples/show_usage_and_version.rb](./examples/show_usage_and_version.rb)<br/>[examples/show_usage_and_version.md](./examples/show_usage_and_version.md)|Simple example supporting ```--help``` and ```--version```|
8
+ |**simple_command_line_no_specifications**|[examples/simple_command_line_no_specifications.rb](./examples/simple_command_line_no_specifications.rb)|Parses a command-line without flag/option specifications|
9
+
10
+
11
+ <!-- ########################### end of file ########################### -->
data/FAQ.md ADDED
@@ -0,0 +1,28 @@
1
+ # CLASP.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/CLASP.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 clasp-ruby
22
+ ```
23
+
24
+ See [README.md](./README.md) for usage.
25
+
26
+
27
+
28
+ <!-- ########################### end of file ########################### -->
data/INSTALL.md ADDED
@@ -0,0 +1,41 @@
1
+ # CLASP.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 clasp-ruby
15
+ ```
16
+
17
+ or add to a **Gemfile**:
18
+
19
+ ```Ruby
20
+ gem 'clasp-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 'clasp'
38
+ ```
39
+
40
+
41
+ <!-- ########################### end of file ########################### -->
data/LICENSE CHANGED
@@ -1,31 +1,32 @@
1
- CLASP.Ruby
1
+ CLASP.Ruby - BSD 3-Clause License
2
2
 
3
- Copyright (c) 2008-2016, Matthew Wilson and Synesis Software
3
+ Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems
4
+ Copyright (c) 2008-2019, Matthew Wilson and Synesis Software
4
5
  All rights reserved.
5
6
 
6
7
  Redistribution and use in source and binary forms, with or without
7
8
  modification, are permitted provided that the following conditions are met:
8
9
 
9
- * Redistributions of source code must retain the above copyright notice, this
10
- list of conditions and the following disclaimer.
10
+ 1. Redistributions of source code must retain the above copyright notice,
11
+ this list of conditions and the following disclaimer.
11
12
 
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.
13
+ 2. Redistributions in binary form must reproduce the above copyright notice,
14
+ this list of conditions and the following disclaimer in the documentation
15
+ and/or other materials provided with the distribution.
15
16
 
16
- * Neither the names of CLASP or CLASP.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.
17
+ 3. Neither the name of the copyright holder nor the names of its
18
+ contributors may be used to endorse or promote products derived from
19
+ this software without specific prior written permission.
20
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.
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
+ POSSIBILITY OF SUCH DAMAGE.
31
32
 
data/NEWS.md ADDED
@@ -0,0 +1,65 @@
1
+ # CLASP.Ruby - News <!-- omit in toc -->
2
+
3
+ | Date | News Item |
4
+ | ------------------ | ------------------------------------------------------------------------------------------ |
5
+ | 27th August 2026 | [**CLASP.Ruby** 0.23.3](https://github.com/synesissoftware/CLASP.Ruby/releases/tag/0.23.3) |
6
+ | 15th August 2026 | [**CLASP.Ruby** 0.23.2](https://github.com/synesissoftware/CLASP.Ruby/releases/tag/0.23.2) |
7
+ | 6th March 2025 | **CLASP.Ruby** 0.23.1 released |
8
+ | 20th January 2024 | **CLASP.Ruby** 0.23.0.2 released |
9
+ | 20th January 2024 | **CLASP.Ruby** 0.23.0.1 released |
10
+ | 26th June 2022 | **CLASP.Ruby** 0.22.1 released |
11
+ | 22nd August 2020 | **CLASP.Ruby** 0.22.0.1 released |
12
+ | 29th April 2019 | **CLASP.Ruby** 0.22.0 released |
13
+ | 28th April 2019 | **CLASP.Ruby** 0.21.0 released |
14
+ | 20th April 2019 | **CLASP.Ruby** 0.20.3 released |
15
+ | 20th April 2019 | **CLASP.Ruby** 0.20.2 released |
16
+ | 20th April 2019 | **CLASP.Ruby** 0.20.1.1 released |
17
+ | 19th April 2019 | **CLASP.Ruby** 0.20.1 released |
18
+ | 19th April 2019 | **CLASP.Ruby** 0.20.0 released |
19
+ | 19th April 2019 | **CLASP.Ruby** 0.19.1.1 released |
20
+ | 19th April 2019 | **CLASP.Ruby** 0.19.1 released |
21
+ | 19th April 2019 | **CLASP.Ruby** 0.19.0.1 released |
22
+ | 13th April 2019 | **CLASP.Ruby** 0.19.0 released |
23
+ | 12th April 2019 | **CLASP.Ruby** 0.18.2 released |
24
+ | 11th April 2019 | **CLASP.Ruby** 0.18.1 released |
25
+ | 10th April 2019 | **CLASP.Ruby** 0.18.0 released |
26
+ | 10th April 2019 | **CLASP.Ruby** 0.17.0 released |
27
+ | 10th April 2019 | **CLASP.Ruby** 0.16.1 released |
28
+ | 19th March 2019 | **CLASP.Ruby** 0.16.0 released |
29
+ | 19th March 2019 | **CLASP.Ruby** 0.15.2 released |
30
+ | 19th March 2019 | **CLASP.Ruby** 0.15.1 released |
31
+ | 27th February 2019 | **CLASP.Ruby** 0.15.0 released |
32
+ | 27th February 2019 | **CLASP.Ruby** 0.14.5 released |
33
+ | 8th January 2019 | **CLASP.Ruby** 0.14.3 released |
34
+ | 19th October 2018 | **CLASP.Ruby** 0.14.1.1 released |
35
+ | 1st October 2018 | **CLASP.Ruby** 0.14.1 released |
36
+ | 1st October 2018 | **CLASP.Ruby** 0.13.4 released |
37
+ | 2nd March 2018 | **CLASP.Ruby** 0.13.3 released |
38
+ | 1st March 2018 | **CLASP.Ruby** 0.13.2 released |
39
+ | 7th February 2018 | **CLASP.Ruby** 0.13.1 released |
40
+ | 7th February 2018 | **CLASP.Ruby** 0.12.2 released |
41
+ | 5th February 2018 | **CLASP.Ruby** 0.7.5 released |
42
+ | 5th February 2018 | **CLASP.Ruby** 0.7.4 released |
43
+ | 5th February 2018 | **CLASP.Ruby** 0.7.3 released |
44
+ | 5th February 2018 | **CLASP.Ruby** 0.7.2 released |
45
+ | 5th February 2018 | **CLASP.Ruby** 0.7.1 released |
46
+ | 5th February 2018 | **CLASP.Ruby** 0.6.10 released |
47
+ | 5th February 2018 | **CLASP.Ruby** 0.6.9 released |
48
+ | 5th February 2018 | **CLASP.Ruby** 0.6.8 released |
49
+ | 5th February 2018 | **CLASP.Ruby** 0.6.7 released |
50
+ | 5th February 2018 | **CLASP.Ruby** 0.6.5 released |
51
+ | 1st January 2018 | **CLASP.Ruby** 0.12.1 released |
52
+ | 1st January 2018 | **CLASP.Ruby** 0.11.4 released |
53
+ | 1st January 2018 | **CLASP.Ruby** 0.11.3 released |
54
+ | 1st January 2018 | **CLASP.Ruby** 0.11.1 released |
55
+ | 1st January 2018 | **CLASP.Ruby** 0.10.3 released |
56
+ | 22nd June 2017 | **CLASP.Ruby** 0.11.2 released |
57
+ | 11th June 2016 | **CLASP.Ruby** 0.10.2 released |
58
+ | 10th June 2016 | **CLASP.Ruby** 0.10.1 released |
59
+ | 9th June 2016 | **CLASP.Ruby** 0.9.2 released |
60
+ | 4th June 2016 | **CLASP.Ruby** 0.9.1 released |
61
+ | 4th June 2016 | **CLASP.Ruby** 0.7.8 released |
62
+ | 3rd June 2016 | **CLASP.Ruby** 0.7.7 released |
63
+
64
+
65
+ <!-- ########################### end of file ########################### -->