squared 0.5.25 → 0.6.0
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/CHANGELOG.md +89 -274
- data/README.md +104 -72
- data/lib/squared/common/base.rb +1 -22
- data/lib/squared/common/format.rb +40 -38
- data/lib/squared/common/prompt.rb +58 -40
- data/lib/squared/common/shell.rb +71 -63
- data/lib/squared/common/system.rb +70 -38
- data/lib/squared/common/utils.rb +30 -15
- data/lib/squared/config.rb +27 -34
- data/lib/squared/version.rb +1 -1
- data/lib/squared/workspace/application.rb +87 -113
- data/lib/squared/workspace/project/base.rb +548 -420
- data/lib/squared/workspace/project/docker.rb +410 -296
- data/lib/squared/workspace/project/git.rb +375 -371
- data/lib/squared/workspace/project/node.rb +501 -284
- data/lib/squared/workspace/project/python.rb +375 -255
- data/lib/squared/workspace/project/ruby.rb +697 -397
- data/lib/squared/workspace/project/support/class.rb +210 -213
- data/lib/squared/workspace/repo.rb +47 -44
- data/lib/squared/workspace/series.rb +13 -21
- data/lib/squared/workspace/support/base.rb +3 -24
- data/lib/squared/workspace/support/variables.rb +48 -0
- data/lib/squared/workspace/support.rb +1 -1
- data/lib/squared/workspace.rb +4 -6
- metadata +3 -3
- data/lib/squared/workspace/support/data.rb +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ed078210213186745643650b4a73f7f376b5aba7033643c850b48d555c198501
|
|
4
|
+
data.tar.gz: d4d8c0e6308f3bdc3aca66891980259ad52ce11f3a53112c7a22ae4de9e31f40
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fcf308f894ee49566103575561b74459afc1aa7e03af8d5c5397c7bb7432dfce996cbb1291f4f81af792d5b1dd8ed6a9075ce7b2fab6f41dca0c56431e38b78c
|
|
7
|
+
data.tar.gz: 19f25542363b33fa567cbfcb0267c79fbc55a313ce0fba8ab25ec17dd43f276b004b00304e8bfe38dba1338a2e554170a8f1535d1bdc5981407fae6e9bff2bf8
|
data/CHANGELOG.md
CHANGED
|
@@ -1,257 +1,97 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
4
|
-
|
|
5
|
-
### Fixed
|
|
6
|
-
|
|
7
|
-
- See `0.4.39`.
|
|
8
|
-
|
|
9
|
-
## [0.4.39] - 2026-07-04
|
|
10
|
-
|
|
11
|
-
### Changed
|
|
12
|
-
|
|
13
|
-
- Common global argument OUT with a file separator overrides PIPE.
|
|
14
|
-
|
|
15
|
-
### Fixed
|
|
16
|
-
|
|
17
|
-
- Git output list results did not hide footer when banner was disabled.
|
|
18
|
-
- Project banners which were empty were being printed.
|
|
19
|
-
|
|
20
|
-
## [0.5.24] - 2026-06-14
|
|
21
|
-
|
|
22
|
-
### Fixed
|
|
23
|
-
|
|
24
|
-
- See `0.4.38`.
|
|
25
|
-
|
|
26
|
-
## [0.4.38] - 2026-06-14
|
|
27
|
-
|
|
28
|
-
### Added
|
|
29
|
-
|
|
30
|
-
- Application project commands can be defined without a reference.
|
|
31
|
-
- Git command branch action all was implemented.
|
|
32
|
-
|
|
33
|
-
### Changed
|
|
34
|
-
|
|
35
|
-
- Override alias methods were created for suffix "!" to "\_".
|
|
36
|
-
- Project banners do not display boolean attributes.
|
|
37
|
-
- OptionPartition method append strips single quotes when quoting strings.
|
|
38
|
-
|
|
39
|
-
### Fixed
|
|
40
|
-
|
|
41
|
-
- Application methods log and exclude were non-functional.
|
|
42
|
-
- Docker command bake action build does not support changing context.
|
|
43
|
-
- Project base method semver did not include prerelease delimiter.
|
|
44
|
-
- Project session cleanup did not compare by reference.
|
|
45
|
-
|
|
46
|
-
## [0.5.23] - 2026-04-29
|
|
47
|
-
|
|
48
|
-
### Fixed
|
|
49
|
-
|
|
50
|
-
- See `0.4.37`.
|
|
51
|
-
|
|
52
|
-
## [0.4.37] - 2026-04-29
|
|
53
|
-
|
|
54
|
-
### Changed
|
|
55
|
-
|
|
56
|
-
- Project base method dependindex replaces private instance variable.
|
|
57
|
-
|
|
58
|
-
### Fixed
|
|
59
|
-
|
|
60
|
-
- Ruby command version did not abort asdf "Not installed" error.
|
|
61
|
-
- Git command pull action all did not pass option flags to branches.
|
|
62
|
-
- Python command exec did not activate virtual environment.
|
|
63
|
-
- Docker command bake did not reinsert failed check for context directory.
|
|
64
|
-
- Common method shell_quote argument preserve did not bypass requoting.
|
|
65
|
-
|
|
66
|
-
## [0.5.22] - 2026-03-11
|
|
67
|
-
|
|
68
|
-
### Fixed
|
|
69
|
-
|
|
70
|
-
- Project base run command was not covered due to lack of type checking.
|
|
71
|
-
|
|
72
|
-
## [0.4.36] - 2026-03-11
|
|
73
|
-
|
|
74
|
-
### Added
|
|
75
|
-
|
|
76
|
-
- Python venv initialization installs setuptools when detected.
|
|
77
|
-
- Node task depend adds prod option flags when NODE_ENV=production.
|
|
78
|
-
|
|
79
|
-
### Changed
|
|
80
|
-
|
|
81
|
-
- Application method with using hide and pass compatibility was implemented.
|
|
82
|
-
|
|
83
|
-
### Fixed
|
|
84
|
-
|
|
85
|
-
- Docker task clean does not run in parallel without ENV override.
|
|
86
|
-
- OptionPartition methods with escape parameter were reordered.
|
|
87
|
-
- OptionPartition methods with quote parameter were revised.
|
|
88
|
-
|
|
89
|
-
## [0.5.21] - 2025-12-31
|
|
90
|
-
|
|
91
|
-
### Fixed
|
|
92
|
-
|
|
93
|
-
- See `0.4.35`.
|
|
94
|
-
|
|
95
|
-
## [0.4.35] - 2025-12-31
|
|
96
|
-
|
|
97
|
-
### Changed
|
|
98
|
-
|
|
99
|
-
- Ruby task copy uses GEM_HOME as fallback for autodetect.
|
|
100
|
-
|
|
101
|
-
### Fixed
|
|
102
|
-
|
|
103
|
-
- Git commands [rebase|clone] did not forward sync flag.
|
|
104
|
-
- Pip command install carelessly used an undefined method.
|
|
105
|
-
- Common prompt method readline with multiline did not permit empty lines.
|
|
106
|
-
- Application method with using pass did not ignore exceptions.
|
|
107
|
-
|
|
108
|
-
## [0.5.20] - 2025-12-26
|
|
109
|
-
|
|
110
|
-
### Fixed
|
|
111
|
-
|
|
112
|
-
- Bundle config get method did not always discard newline.
|
|
113
|
-
|
|
114
|
-
## [0.4.34] - 2025-12-26
|
|
115
|
-
|
|
116
|
-
### Added
|
|
117
|
-
|
|
118
|
-
- Project public base method scope for nested tasks was created.
|
|
119
|
-
- Ruby task copy can autodetect "env" using [GEM_HOME|GEM_ROOT].
|
|
120
|
-
|
|
121
|
-
### Changed
|
|
122
|
-
|
|
123
|
-
- Python virtual environment did not install poetry during initialization.
|
|
124
|
-
|
|
125
|
-
### Fixed
|
|
126
|
-
|
|
127
|
-
- Workspace global banner never referenced the correct hash key.
|
|
128
|
-
- Python task depend without editable did not append context directory.
|
|
129
|
-
- Docker task build did not parse DOCKER_OPTIONS as command options.
|
|
130
|
-
- Project base method build did not call Method routines.
|
|
131
|
-
- Bundler autodetect did not check for valid gems directory.
|
|
132
|
-
- Ruby copy to version detection did not check for valid gemspec.
|
|
133
|
-
|
|
134
|
-
## [0.5.19] - 2025-12-07
|
|
135
|
-
|
|
136
|
-
### Fixed
|
|
137
|
-
|
|
138
|
-
- See `0.4.33`.
|
|
139
|
-
|
|
140
|
-
## [0.4.33] - 2025-12-07
|
|
141
|
-
|
|
142
|
-
### Added
|
|
143
|
-
|
|
144
|
-
- Ruby attribute setter gemdir for copy method was created.
|
|
145
|
-
- Project inline run executables binary path are replaced with global alias.
|
|
146
|
-
|
|
147
|
-
### Fixed
|
|
148
|
-
|
|
149
|
-
- Workspace class Series created non-existent keys when queried.
|
|
150
|
-
- Application class did not support changing base Project class.
|
|
151
|
-
- Git command rev action build did not check build? method.
|
|
152
|
-
- Python command build action python did not use outdir option.
|
|
153
|
-
|
|
154
|
-
## [0.5.18] - 2025-11-25
|
|
155
|
-
|
|
156
|
-
### Fixed
|
|
157
|
-
|
|
158
|
-
- See `0.4.32`.
|
|
159
|
-
|
|
160
|
-
## [0.4.32] - 2025-11-25
|
|
161
|
-
|
|
162
|
-
### Fixed
|
|
163
|
-
|
|
164
|
-
- Git method commit did not include --dry-run with add command.
|
|
165
|
-
- JoinSet method include? did not always search to start of delimiter.
|
|
166
|
-
- Config viewer did not check for a readable package registry document.
|
|
167
|
-
- Powershell executable did not check for alternate path location.
|
|
168
|
-
|
|
169
|
-
## [0.5.17] - 2025-11-22
|
|
170
|
-
|
|
171
|
-
### Fixed
|
|
172
|
-
|
|
173
|
-
- See `0.4.31`.
|
|
174
|
-
|
|
175
|
-
## [0.4.31] - 2025-11-22
|
|
176
|
-
|
|
177
|
-
### Changed
|
|
178
|
-
|
|
179
|
-
- Project base attribute project was converted into an accessor.
|
|
180
|
-
- Ruby command flag is given precedence to a program file.
|
|
181
|
-
|
|
182
|
-
### Fixed
|
|
183
|
-
|
|
184
|
-
- Repo application tasks are not created on Windows.
|
|
185
|
-
- Repo module used conflicting REPO_URL with Repo application.
|
|
186
|
-
- Project task outdated did not check pass and only exclusions.
|
|
187
|
-
- Workspace static method resolve did nothing when given a String.
|
|
188
|
-
- Project base run command types did not include Struct.
|
|
189
|
-
- Project change directory context did not always restore when raised.
|
|
190
|
-
- Ruby file method attributes did not always return nil.
|
|
191
|
-
- JoinSet with a delimiter did not report correct size.
|
|
192
|
-
|
|
193
|
-
## [0.5.16] - 2025-11-14
|
|
194
|
-
|
|
195
|
-
### Fixed
|
|
196
|
-
|
|
197
|
-
- See `0.4.30`.
|
|
198
|
-
|
|
199
|
-
## [0.4.30] - 2025-11-14
|
|
3
|
+
## [0.6.0] - 2025-10-31
|
|
200
4
|
|
|
201
5
|
### Added
|
|
202
6
|
|
|
203
|
-
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
-
|
|
243
|
-
|
|
244
|
-
|
|
7
|
+
- Docker command compose action create was implemented.
|
|
8
|
+
- Docker command compose action ps was implemented.
|
|
9
|
+
- Docker command compose action ps is interactive.
|
|
10
|
+
- Project base asdf commands [latest|where|update] were implemented.
|
|
11
|
+
- Pip command options were updated to 25.2.
|
|
12
|
+
- Command line programs who do not assign with equals are supported.
|
|
13
|
+
- Docker command ls with column formatting was implemented.
|
|
14
|
+
- Git command stash action staged and worktree were implemented.
|
|
15
|
+
- Git command diff action files can output to a patch file.
|
|
16
|
+
- Repo task init with REPO_Y can auto-accept overwrite confirmation.
|
|
17
|
+
- Caller locations for errors can be excluded using ARG[:BACKTRACE].
|
|
18
|
+
- Node command package action reinstall was implemented.
|
|
19
|
+
- Node class method and command tsc was implemented.
|
|
20
|
+
- Python command pip action reinstall was implemented.
|
|
21
|
+
- Project command options can be stored by class ref and project name.
|
|
22
|
+
- Bundler command config is interactive.
|
|
23
|
+
- Ruby method bundle supports stored command options.
|
|
24
|
+
- Ruby method rake supports stored command options.
|
|
25
|
+
- Ruby method ruby supports stored command options.
|
|
26
|
+
- Ruby method gem supports stored command options.
|
|
27
|
+
- Python method pip supports stored command options.
|
|
28
|
+
- Python command pip action wheel was implemented.
|
|
29
|
+
- Ruby method irb supports stored command options.
|
|
30
|
+
- Ruby command gem action command was implemented.
|
|
31
|
+
- ENV supplementary command options can be space delimited.
|
|
32
|
+
- Project command options can extend other stored options.
|
|
33
|
+
- Ruby command gem action outdated can update without being interactive.
|
|
34
|
+
- Ruby command gem action update system can accept a specific version.
|
|
35
|
+
- Ruby command gem action outdated supports threading.
|
|
36
|
+
- Git command grep was implemented.
|
|
37
|
+
- Common format bright colors fallback to standard colors when not enabled.
|
|
38
|
+
- Project base command unpack action gz was implemented.
|
|
39
|
+
- Common format defined String instance method subhint.
|
|
40
|
+
- Application readers [exception|pipe|verbose|warning] were converted into accessors.
|
|
41
|
+
- Node private projects can publish entire workspace with tags.
|
|
42
|
+
- Node command outdated can select a range of packages to update.
|
|
43
|
+
- Gem command outdated can select a range of packages to update.
|
|
44
|
+
- Python command outdated can select a range of packages to update.
|
|
45
|
+
- Node command outdated option diff was implemented.
|
|
46
|
+
- Bundler command outdated can select a range of packages to update.
|
|
47
|
+
- Common prompt method choice can select all items with "\*".
|
|
48
|
+
- Node command bump can auto-commit package.json using GIT_MESSAGE.
|
|
49
|
+
- Git command options were updated to version 2.51.
|
|
245
50
|
|
|
246
51
|
### Changed
|
|
247
52
|
|
|
248
|
-
-
|
|
249
|
-
-
|
|
250
|
-
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
-
|
|
53
|
+
- Git method source will raise error when checking exit status.
|
|
54
|
+
- Date gem is no longer globally required.
|
|
55
|
+
- Global task git:all was removed.
|
|
56
|
+
- Common base method as_a was relocated to Utils.
|
|
57
|
+
- Python command build and publish detects only one backend.
|
|
58
|
+
- Docker command compose action ps was renamed service.
|
|
59
|
+
- Docker command image action list was renamed ls.
|
|
60
|
+
- Project base method success? conditionally calls print_success method.
|
|
61
|
+
- Error classes were not specified for invalid operation.
|
|
62
|
+
- Common format methods stripstyle and stripext are String instance methods.
|
|
63
|
+
- Common format method alias puts_oe was removed.
|
|
64
|
+
- Git commands without a valid action will exit with error status.
|
|
65
|
+
- Errno exceptions are used in place of SystemCallError.
|
|
66
|
+
- Common format method raise_error defaults to RuntimeError.
|
|
67
|
+
- OptionPartition delegator method delete_at was renamed remove_at.
|
|
68
|
+
- Node event name "publish" was renamed to "npm:publish".
|
|
69
|
+
- Project task run with a Method passes self as first argument.
|
|
70
|
+
- Ruby command check was removed.
|
|
71
|
+
- Ruby method gem! was renamed gem.
|
|
72
|
+
- Ruby methods ruby and irb first argument was converted into kwargs.
|
|
73
|
+
- Ruby method rake executes all tasks in one run command.
|
|
74
|
+
- Ruby project file methods return nil instead of false.
|
|
75
|
+
- Ruby commands [exec|cache|config] were relocated under bundle namespace.
|
|
76
|
+
- Ruby command gem action update without arguments is not modified.
|
|
77
|
+
- Ruby command install was replaced with reinstall under bundle namespace.
|
|
78
|
+
- Ruby command update was relocated under bundle namespace.
|
|
79
|
+
- Common prompt confirm timeout was revised for non-immediate responses.
|
|
80
|
+
- Project relative paths are stripped from banner when context is displayed.
|
|
81
|
+
- Workspace module Support extend submodules private methods.
|
|
82
|
+
- Workspace method add passes parent through Project constructor.
|
|
83
|
+
- Project base method run_s uses last argument for ENV hash.
|
|
84
|
+
- Project base method inject does not exit program when raised.
|
|
85
|
+
- Reline gem is installed only when using at least Ruby 3.0.
|
|
86
|
+
- Python method install arguments strategy and user were removed.
|
|
87
|
+
- Project command outdated does not support threading when interactive.
|
|
88
|
+
- Project base accessor global was converted into a reader and setter.
|
|
89
|
+
- Repo build can simultaneously use script and run through REPO_BUILD.
|
|
90
|
+
- Repo static method read_manifest was made an instance method named repo_manifest.
|
|
91
|
+
|
|
92
|
+
### Fixed
|
|
93
|
+
|
|
94
|
+
- Node task update did not check equivalent ENV install options.
|
|
255
95
|
|
|
256
96
|
## [0.5.12] - 2025-10-31
|
|
257
97
|
|
|
@@ -1410,7 +1250,7 @@
|
|
|
1410
1250
|
- Rake did not set original rakefile when calling itself.
|
|
1411
1251
|
- Extended tasks were not associated to their supporting class method.
|
|
1412
1252
|
|
|
1413
|
-
## [0.1.0] - 2024-12-
|
|
1253
|
+
## [0.1.0] - 2024-12-7
|
|
1414
1254
|
|
|
1415
1255
|
### Added
|
|
1416
1256
|
|
|
@@ -1431,25 +1271,13 @@
|
|
|
1431
1271
|
- Git pull did not display colors for diff bar chart.
|
|
1432
1272
|
- Git commit did not fetch latest refs before submitting.
|
|
1433
1273
|
|
|
1434
|
-
## [0.0.12] - 2024-12-
|
|
1274
|
+
## [0.0.12] - 2024-12-1
|
|
1435
1275
|
|
|
1436
1276
|
### Added
|
|
1437
1277
|
|
|
1438
1278
|
- Changelog was created.
|
|
1439
1279
|
|
|
1440
|
-
[0.
|
|
1441
|
-
[0.5.24]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.24
|
|
1442
|
-
[0.5.23]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.23
|
|
1443
|
-
[0.5.22]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.22
|
|
1444
|
-
[0.5.21]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.21
|
|
1445
|
-
[0.5.20]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.20
|
|
1446
|
-
[0.5.19]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.19
|
|
1447
|
-
[0.5.18]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.18
|
|
1448
|
-
[0.5.17]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.17
|
|
1449
|
-
[0.5.16]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.16
|
|
1450
|
-
[0.5.15]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.15
|
|
1451
|
-
[0.5.14]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.14
|
|
1452
|
-
[0.5.13]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.13
|
|
1280
|
+
[0.6.0]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.0
|
|
1453
1281
|
[0.5.12]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.12
|
|
1454
1282
|
[0.5.11]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.11
|
|
1455
1283
|
[0.5.10]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.10
|
|
@@ -1463,19 +1291,6 @@
|
|
|
1463
1291
|
[0.5.2]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.2-ruby
|
|
1464
1292
|
[0.5.1]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.1-ruby
|
|
1465
1293
|
[0.5.0]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.0-ruby
|
|
1466
|
-
[0.4.39]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.39
|
|
1467
|
-
[0.4.38]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.38
|
|
1468
|
-
[0.4.37]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.37
|
|
1469
|
-
[0.4.36]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.36
|
|
1470
|
-
[0.4.35]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.35
|
|
1471
|
-
[0.4.34]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.34
|
|
1472
|
-
[0.4.33]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.33
|
|
1473
|
-
[0.4.32]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.32
|
|
1474
|
-
[0.4.31]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.31
|
|
1475
|
-
[0.4.30]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.30
|
|
1476
|
-
[0.4.29]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.29
|
|
1477
|
-
[0.4.28]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.28
|
|
1478
|
-
[0.4.27]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.27
|
|
1479
1294
|
[0.4.26]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.26
|
|
1480
1295
|
[0.4.25]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.25
|
|
1481
1296
|
[0.4.24]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.24
|