squared 0.6.13 → 0.6.14
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 +39 -0
- data/README.md +2 -1
- data/lib/squared/common/shell.rb +14 -7
- data/lib/squared/version.rb +1 -1
- data/lib/squared/workspace/project/base.rb +9 -9
- data/lib/squared/workspace/project/docker.rb +9 -10
- data/lib/squared/workspace/project/git.rb +14 -9
- data/lib/squared/workspace/project/node.rb +23 -6
- data/lib/squared/workspace/project/python.rb +1 -0
- data/lib/squared/workspace/project/ruby.rb +3 -3
- data/lib/squared/workspace/project/support/optionpartition.rb +5 -5
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf000f3929e009426b937626a3935e366f952b7faccfe57b7217c2f6bac02975
|
|
4
|
+
data.tar.gz: 8612731d94dda35b871c85dc08f8e35a54c061d40e0846861ca70696a65e7abc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eda3163e0814ff4b26022284f187ad5137d229cfdc847ee86979fc1a1ec770b640de4261af38cff5df41878bd691d6f180dfb13b9bbd801ac22fad904e77d087
|
|
7
|
+
data.tar.gz: fe40717e98e88842f50c3c253ca2bc7df7164a4d95a90c89f4f3f87b359c389a77cd49f4a68786bb98575d56f5100d77483f4ba6410b20001af8d251d556a965
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.14] - 2026-06-14
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Node task depend can run approve-scripts with NPM_APPROVE_SCRIPTS.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Docker command bake action build did not append context directory.
|
|
12
|
+
|
|
13
|
+
## [0.5.24] - 2026-06-14
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- See `0.4.38`.
|
|
18
|
+
|
|
19
|
+
## [0.4.38] - 2026-06-14
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- Application project commands can be defined without a reference.
|
|
24
|
+
- Git command branch action all was implemented.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Override alias methods were created for suffix "!" to "\_".
|
|
29
|
+
- Project banners do not display boolean attributes.
|
|
30
|
+
- OptionPartition method append strips single quotes when quoting strings.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Application methods log and exclude were non-functional.
|
|
35
|
+
- Docker command bake action build does not support changing context.
|
|
36
|
+
- Project base method semver did not include prerelease delimiter.
|
|
37
|
+
- Project session cleanup did not compare by reference.
|
|
38
|
+
|
|
3
39
|
## [0.6.13] - 2026-05-04
|
|
4
40
|
|
|
5
41
|
### Added
|
|
@@ -1675,6 +1711,7 @@
|
|
|
1675
1711
|
|
|
1676
1712
|
- Changelog was created.
|
|
1677
1713
|
|
|
1714
|
+
[0.6.14]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.14
|
|
1678
1715
|
[0.6.13]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.13
|
|
1679
1716
|
[0.6.12]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.12
|
|
1680
1717
|
[0.6.11]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.11
|
|
@@ -1689,6 +1726,7 @@
|
|
|
1689
1726
|
[0.6.2]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.2
|
|
1690
1727
|
[0.6.1]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.1
|
|
1691
1728
|
[0.6.0]: https://github.com/anpham6/squared-ruby/releases/tag/v0.6.0
|
|
1729
|
+
[0.5.24]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.24
|
|
1692
1730
|
[0.5.23]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.23
|
|
1693
1731
|
[0.5.22]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.22
|
|
1694
1732
|
[0.5.21]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.21
|
|
@@ -1713,6 +1751,7 @@
|
|
|
1713
1751
|
[0.5.2]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.2-ruby
|
|
1714
1752
|
[0.5.1]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.1-ruby
|
|
1715
1753
|
[0.5.0]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.0-ruby
|
|
1754
|
+
[0.4.38]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.38
|
|
1716
1755
|
[0.4.37]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.37
|
|
1717
1756
|
[0.4.36]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.36
|
|
1718
1757
|
[0.4.35]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.35
|
data/README.md
CHANGED
|
@@ -838,11 +838,12 @@ Features can be enabled through ENV when calling global tasks such as through *C
|
|
|
838
838
|
| outdated | - | U|UPDATE=major|minor|patch DIFF DRY_RUN |
|
|
839
839
|
| publish | - | OTP=s TAG=s ACCESS=0,1,s DRY_RUN Y |
|
|
840
840
|
| depend package | * | PACAKGE_LOCK|LOCKFILE=0 NO_LOCKFILE=1 Y |
|
|
841
|
-
| npm
|
|
841
|
+
| npm | depend | APPROVE_SCRIPTS=s |
|
|
842
842
|
| npm | package | SAVE IGNORE_SCRIPTS STRICT_PEER_DEPS |
|
|
843
843
|
| pnpm | depend | PUBLIC_HOIST_PATTERN=s APPROVE_BUILDS |
|
|
844
844
|
| pnpm | depend:add | ALLOW_BUILD=s |
|
|
845
845
|
| yarn | depend package | IGNORE_ENGINES=0 |
|
|
846
|
+
| npm pnpm | depend package | CPU=s OS=s LIBC=s |
|
|
846
847
|
|
|
847
848
|
#### Python
|
|
848
849
|
|
data/lib/squared/common/shell.rb
CHANGED
|
@@ -54,15 +54,22 @@ module Squared
|
|
|
54
54
|
def shell_quote(val, option: true, force: true, double: false, preserve: true, pass: false, override: false)
|
|
55
55
|
val = val.to_s
|
|
56
56
|
return val if (!force && !val.include?(' ')) || val.empty?
|
|
57
|
+
return val if option && val.match?(/\A(?:-[^=\s-](?:=|\s+)?|(--)?[^=\s-][^=\s]*(?(1)(?:=|\s+)|=))(["']).+\2\z/m)
|
|
57
58
|
|
|
58
|
-
if option
|
|
59
|
-
pat = /\A(?:-[^=\s-](?:=|\s+)?|(--)?[^=\s-][^=\s]*(?(1)(?:=|\s+)|=))(["']).+\2\z/m
|
|
60
|
-
return val if val.match?(pat)
|
|
61
|
-
end
|
|
62
59
|
if val =~ QUOTE_VALUE
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
if pass == '"' || pass == "'"
|
|
61
|
+
return val if pass == $1
|
|
62
|
+
elsif pass || ($1 == '"' && Rake::Win32.windows? && val.match?(/(?:[#{File::SEPARATOR} ]|\\")/o))
|
|
63
|
+
return val
|
|
64
|
+
end
|
|
65
|
+
case preserve
|
|
66
|
+
when false
|
|
67
|
+
base = $2
|
|
68
|
+
when '"'
|
|
69
|
+
base = $2 if $1 == "'"
|
|
70
|
+
when "'"
|
|
71
|
+
base = $2 if $1 == '"'
|
|
72
|
+
end
|
|
66
73
|
end
|
|
67
74
|
q = -> { (base || val).gsub("'\\\\''", "'") }
|
|
68
75
|
if double || Rake::Win32.windows? || (ARG[:QUOTE] == '"' && !override)
|
data/lib/squared/version.rb
CHANGED
|
@@ -23,7 +23,7 @@ module Squared
|
|
|
23
23
|
VAR_SET = %i[parent global script index envname desc dependfile dependname dependindex theme archive env graph
|
|
24
24
|
dev prod pass only exclude asdf].freeze
|
|
25
25
|
BLK_SET = %i[run depend doc lint test copy clean].freeze
|
|
26
|
-
SEM_VER = /\b(\d+)(?:(\.)(\d+))?(?:(\.)(\d+))?[-.]?(\S+)?\b/.freeze
|
|
26
|
+
SEM_VER = /\b(\d+)(?:(\.)(\d+))?(?:(\.)(\d+))?(?:([-.])?(\S+))?\b/.freeze
|
|
27
27
|
URI_SCHEME = %r{\A([a-z][a-z\d+-.]*)://[^@:\[\]\\^<>|\s]}i.freeze
|
|
28
28
|
TASK_METADATA = Rake::TaskManager.record_task_metadata
|
|
29
29
|
private_constant :OPTIONS, :VAR_SET, :BLK_SET, :SEM_VER, :URI_SCHEME, :TASK_METADATA
|
|
@@ -1249,7 +1249,7 @@ module Squared
|
|
|
1249
1249
|
else
|
|
1250
1250
|
if series?(obj)
|
|
1251
1251
|
obj.each(&:call)
|
|
1252
|
-
elsif obj.is_a?(Array) && obj.any? { |val|
|
|
1252
|
+
elsif obj.is_a?(Array) && obj.any? { |val| !val.is_a?(String) }
|
|
1253
1253
|
build(*obj, **kwargs)
|
|
1254
1254
|
elsif obj
|
|
1255
1255
|
run_s(*Array(obj), **kwargs)
|
|
@@ -1502,7 +1502,7 @@ module Squared
|
|
|
1502
1502
|
return cmd.to_s unless cmd.respond_to?(:done)
|
|
1503
1503
|
|
|
1504
1504
|
raise_error 'no command added', hint: cmd.first unless cmd.size > 1
|
|
1505
|
-
@session = nil if cmd
|
|
1505
|
+
@session = nil if cmd.equal?(@session)
|
|
1506
1506
|
cmd.done
|
|
1507
1507
|
end
|
|
1508
1508
|
|
|
@@ -1653,7 +1653,7 @@ module Squared
|
|
|
1653
1653
|
__send__ meth
|
|
1654
1654
|
end
|
|
1655
1655
|
end
|
|
1656
|
-
val = val.
|
|
1656
|
+
val = val.reject { |item| !item || item == true }.join(s)
|
|
1657
1657
|
next unless found && !val.empty?
|
|
1658
1658
|
elsif (val = __send__(val)).nil?
|
|
1659
1659
|
next
|
|
@@ -2086,9 +2086,9 @@ module Squared
|
|
|
2086
2086
|
|
|
2087
2087
|
a, b = [a.first, b.first].map! do |c|
|
|
2088
2088
|
d = begin
|
|
2089
|
-
Integer(c[
|
|
2089
|
+
Integer(c[6]).to_s
|
|
2090
2090
|
rescue StandardError
|
|
2091
|
-
c[
|
|
2091
|
+
c[6] ? '-1' : '0'
|
|
2092
2092
|
end
|
|
2093
2093
|
[c[0], c[2], c[4] || '0', d]
|
|
2094
2094
|
end
|
|
@@ -2434,7 +2434,7 @@ module Squared
|
|
|
2434
2434
|
end
|
|
2435
2435
|
|
|
2436
2436
|
def semmajor?(cur, want)
|
|
2437
|
-
(cur[0] == '0' && want[0] == '0' ? cur[2] != want[2] : cur[0] != want[0]) && !want[
|
|
2437
|
+
(cur[0] == '0' && want[0] == '0' ? cur[2] != want[2] : cur[0] != want[0]) && !want[6]
|
|
2438
2438
|
end
|
|
2439
2439
|
|
|
2440
2440
|
def printfirst?
|
|
@@ -2484,7 +2484,7 @@ module Squared
|
|
|
2484
2484
|
when FalseClass
|
|
2485
2485
|
false
|
|
2486
2486
|
else
|
|
2487
|
-
|
|
2487
|
+
$?&.success?
|
|
2488
2488
|
end.tap do |ret|
|
|
2489
2489
|
next unless cond.none? { |val| val == false }
|
|
2490
2490
|
|
|
@@ -2509,7 +2509,7 @@ module Squared
|
|
|
2509
2509
|
end
|
|
2510
2510
|
|
|
2511
2511
|
def stdout?
|
|
2512
|
-
|
|
2512
|
+
!quiet? && !stdin?
|
|
2513
2513
|
end
|
|
2514
2514
|
|
|
2515
2515
|
def verbose?
|
|
@@ -394,17 +394,15 @@ module Squared
|
|
|
394
394
|
append_context context
|
|
395
395
|
when :bake
|
|
396
396
|
unless op.empty?
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
end
|
|
397
|
+
if !context && op.size > 1 && basepath(op.last).directory?
|
|
398
|
+
pat = /\btarget\s+"#{Regexp.escape(op.last)}"/
|
|
399
|
+
context = op.pop if op.values_of('f', 'file').none? { |f| basepath!(f)&.read&.match?(pat) }
|
|
400
|
+
end
|
|
401
|
+
if context
|
|
402
|
+
context = basepath context
|
|
403
|
+
op.each { |name| op.add_option('set', "#{name}.context=#{context}", escape: false) }
|
|
405
404
|
end
|
|
406
|
-
op.append(
|
|
407
|
-
contextdir context if context
|
|
405
|
+
op.append(escape: true, strip: /^:/, clear: true)
|
|
408
406
|
end
|
|
409
407
|
end
|
|
410
408
|
op.clear(pass: false)
|
|
@@ -447,6 +445,7 @@ module Squared
|
|
|
447
445
|
end
|
|
448
446
|
run(from: from)
|
|
449
447
|
end
|
|
448
|
+
alias compose_ compose!
|
|
450
449
|
|
|
451
450
|
def container(flag, opts = [], id: nil)
|
|
452
451
|
cmd, opts = docker_session('container', flag, opts: opts)
|
|
@@ -320,7 +320,7 @@ module Squared
|
|
|
320
320
|
end
|
|
321
321
|
|
|
322
322
|
subtasks({
|
|
323
|
-
'branch' => %i[create track delete move copy list current].freeze,
|
|
323
|
+
'branch' => %i[create track delete move copy list all current].freeze,
|
|
324
324
|
'checkout' => %i[commit branch track detach path].freeze,
|
|
325
325
|
'commit' => %i[add all amend amend-orig fixup].freeze,
|
|
326
326
|
'diff' => %i[head branch files view between contain].freeze,
|
|
@@ -717,12 +717,7 @@ module Squared
|
|
|
717
717
|
task flag do |_, args|
|
|
718
718
|
branch flag, args.to_a
|
|
719
719
|
end
|
|
720
|
-
when :
|
|
721
|
-
format_desc action, flag
|
|
722
|
-
task flag do
|
|
723
|
-
branch flag
|
|
724
|
-
end
|
|
725
|
-
else
|
|
720
|
+
when :move, :copy
|
|
726
721
|
format_desc action, flag, 'branch,oldbranch?'
|
|
727
722
|
task flag, [:branch, :oldbranch] do |_, args|
|
|
728
723
|
if (branch = args.branch)
|
|
@@ -733,6 +728,11 @@ module Squared
|
|
|
733
728
|
end
|
|
734
729
|
branch(flag, refs: [oldbranch, branch])
|
|
735
730
|
end
|
|
731
|
+
else
|
|
732
|
+
format_desc action, flag
|
|
733
|
+
task flag do
|
|
734
|
+
branch flag
|
|
735
|
+
end
|
|
736
736
|
end
|
|
737
737
|
when 'switch'
|
|
738
738
|
case flag
|
|
@@ -1122,7 +1122,7 @@ module Squared
|
|
|
1122
1122
|
option('no-tags') { opts[:'no-tags'] = true }
|
|
1123
1123
|
opts.delete(:'recurse-submodules') || opts.delete(:'no-recurse-submodules') if append_submodules(from: :clone)
|
|
1124
1124
|
append_hash opts
|
|
1125
|
-
cmd << '--quiet' if option('quiet')
|
|
1125
|
+
cmd << '--quiet' if quiet? || option('quiet')
|
|
1126
1126
|
append_value(data[0], path, delim: true)
|
|
1127
1127
|
source(sync: sync, banner: sync && !quiet?, multiple: !sync || quiet?)
|
|
1128
1128
|
end
|
|
@@ -1400,6 +1400,7 @@ module Squared
|
|
|
1400
1400
|
append_pathspec op.extras
|
|
1401
1401
|
source(exception: false)
|
|
1402
1402
|
end
|
|
1403
|
+
alias log_ log!
|
|
1403
1404
|
|
|
1404
1405
|
def diff(flag, opts = [], refs: [], branch: nil, range: [], index: [])
|
|
1405
1406
|
cmd, opts = git_session('diff', opts: opts)
|
|
@@ -1885,6 +1886,10 @@ module Squared
|
|
|
1885
1886
|
|
|
1886
1887
|
def source(cmd = @session, exception: true, io: false, sync: true, stdout: false, stderr: false, banner: true,
|
|
1887
1888
|
multiple: false, hint: nil, from: nil, send: :system, **kwargs)
|
|
1889
|
+
unless cmd
|
|
1890
|
+
print_error('no git session started', subject: project, hint: from, pass: true)
|
|
1891
|
+
return
|
|
1892
|
+
end
|
|
1888
1893
|
cmd = cmd.target if cmd.is_a?(OptionPartition)
|
|
1889
1894
|
if io && banner == false
|
|
1890
1895
|
from = nil
|
|
@@ -2078,7 +2083,7 @@ module Squared
|
|
|
2078
2083
|
end
|
|
2079
2084
|
op << '--verbose' if (flag || from == :fetch) && stdout? && !op.arg?('quiet')
|
|
2080
2085
|
if remote
|
|
2081
|
-
op.append(remote
|
|
2086
|
+
op.append(remote)
|
|
2082
2087
|
if (val = option('refspec', target: target, strict: true))
|
|
2083
2088
|
op.append(*split_escape(val))
|
|
2084
2089
|
else
|
|
@@ -181,7 +181,7 @@ module Squared
|
|
|
181
181
|
when 'add'
|
|
182
182
|
format_desc action, nil, 'save?=[=-]prod|dev|optional|peer|bundle,(-)name+'
|
|
183
183
|
task action, [:save] do |_, args|
|
|
184
|
-
packages = if args.save =~
|
|
184
|
+
packages = if args.save =~ /^([=-]*)(prod|dev|optional|peer|bundle)$/
|
|
185
185
|
save = [$2, $1.include?('='), $1.include?('-')]
|
|
186
186
|
args.extras
|
|
187
187
|
else
|
|
@@ -508,7 +508,6 @@ module Squared
|
|
|
508
508
|
end
|
|
509
509
|
save, exact, omit = save if save.is_a?(Array)
|
|
510
510
|
ws = env('NODE_WORKSPACES', equals: '0')
|
|
511
|
-
ci = option('ci')
|
|
512
511
|
om = lambda do |cmd|
|
|
513
512
|
if omit
|
|
514
513
|
save = case save
|
|
@@ -545,7 +544,7 @@ module Squared
|
|
|
545
544
|
end
|
|
546
545
|
if nolockfile?('yarn')
|
|
547
546
|
cmd << '--no-lockfile'
|
|
548
|
-
elsif ci
|
|
547
|
+
elsif option('ci')
|
|
549
548
|
if yarn == 1
|
|
550
549
|
cmd << '--frozen-lockfile'
|
|
551
550
|
elsif !flag
|
|
@@ -581,13 +580,27 @@ module Squared
|
|
|
581
580
|
'--force'
|
|
582
581
|
elsif nolockfile?('pnpm')
|
|
583
582
|
'--no-lockfile'
|
|
584
|
-
elsif ci
|
|
583
|
+
elsif option('ci')
|
|
585
584
|
'--frozen-lockfile'
|
|
586
585
|
end
|
|
587
586
|
cmd << '--ignore-scripts' if option('ignore-scripts')
|
|
588
587
|
cmd << '--dangerously-allow-all-builds' if option('approve-builds')
|
|
589
588
|
else
|
|
590
|
-
cmd = session
|
|
589
|
+
cmd = session 'npm'
|
|
590
|
+
cmd << (ci = option('ci') ? 'ci' : 'install')
|
|
591
|
+
option('approve-scripts') do |val|
|
|
592
|
+
cmd = npm_output 'approve-scripts'
|
|
593
|
+
cmd << case val
|
|
594
|
+
when '1'
|
|
595
|
+
'--all --no-allow-scripts-pin'
|
|
596
|
+
when 'true', 'all'
|
|
597
|
+
'--all'
|
|
598
|
+
else
|
|
599
|
+
val.split(/\s+/).quote!.join(' ')
|
|
600
|
+
end
|
|
601
|
+
print_run cmd, quiet?
|
|
602
|
+
run(cmd, banner: false)
|
|
603
|
+
end
|
|
591
604
|
cmd << '--workspaces=false' if ws
|
|
592
605
|
cmd << '--force' if option('force')
|
|
593
606
|
append_nocolor
|
|
@@ -701,7 +714,7 @@ module Squared
|
|
|
701
714
|
when :patch
|
|
702
715
|
a == c && b == d && f[4] != w[4]
|
|
703
716
|
end
|
|
704
|
-
if upgrade && !w[
|
|
717
|
+
if upgrade && !w[6]
|
|
705
718
|
next if file == want
|
|
706
719
|
|
|
707
720
|
found << [key, file, want, if a != c
|
|
@@ -1252,6 +1265,10 @@ module Squared
|
|
|
1252
1265
|
|
|
1253
1266
|
private
|
|
1254
1267
|
|
|
1268
|
+
def npm_output(*cmd, **kwargs)
|
|
1269
|
+
session_output('npm', *cmd, **kwargs)
|
|
1270
|
+
end
|
|
1271
|
+
|
|
1255
1272
|
def read_package(key = 'packageManager', update: false)
|
|
1256
1273
|
if !@pm.key?(key) || update
|
|
1257
1274
|
doc = JSON.parse(dependfile.read)
|
|
@@ -8,7 +8,7 @@ module Squared
|
|
|
8
8
|
GEMNAME = /\A[A-Za-z\d][A-Za-z\d_.-]*\z/.freeze
|
|
9
9
|
DIR_RUBY = (GEMFILE + Rake::Application::DEFAULT_RAKEFILES + ['README.rdoc']).freeze
|
|
10
10
|
OPT_RUBY = {
|
|
11
|
-
ruby: %w[0=im?
|
|
11
|
+
ruby: %w[a c l n p s S w 0=im? C=pm e=q E=bm F=qm i=bm? I=pm r=bm W=bm? x=pm? d|debug jit rjit verbose
|
|
12
12
|
y|yydebug backtrace-limit=i crash-report=q disable=q dump=q enable=q encoding=b external-encoding=b
|
|
13
13
|
internal-encoding=b parser=b].freeze,
|
|
14
14
|
rake: %w[A|all B|build-all comments n|dry-run m|multitask P|prereqs q|quiet X|no-deprecation-warnings
|
|
@@ -21,7 +21,7 @@ module Squared
|
|
|
21
21
|
nomultiline noprompt noscript nosingleline noverbose regexp-completor sample-book-mode script
|
|
22
22
|
simple-prompt single-irb singleline tracer truncate-echo-on-assignment type-completor verbose
|
|
23
23
|
back-trace-limit=i context-mode=i prompt=b prompt-mode=b].freeze,
|
|
24
|
-
rbs: %w[I=pm r=bm no-
|
|
24
|
+
rbs: %w[I=pm r=bm no-collection no-stdlib collection=p log-level=b log-output=p repo=p].freeze,
|
|
25
25
|
rubocop: %w[D P r=bm auto-gen-config a|autocorrect A|autocorrect-all d|debug disable-pending-cops
|
|
26
26
|
display-only-correctable display-only-fail-level-offenses display-only-failed
|
|
27
27
|
display-only-safe-correctable S|display-style-guide display-time editor-mode enable-pending-cops
|
|
@@ -805,7 +805,7 @@ module Squared
|
|
|
805
805
|
end.each do |val|
|
|
806
806
|
next unless val.empty? || File.exist?(val.sub('$HOME', Dir.home))
|
|
807
807
|
|
|
808
|
-
trim = ->(s) { s
|
|
808
|
+
trim = ->(s) { s =~ /^\D+\d+\.\d+(?:\.\S+)?/ ? $&.sub(/^([a-z]+)-/i, '\1 ') : s }
|
|
809
809
|
ver = '.ruby-version'
|
|
810
810
|
out << trim.call(case (cmd = File.basename(val))
|
|
811
811
|
when 'rvm'
|
|
@@ -21,7 +21,7 @@ module Squared
|
|
|
21
21
|
include Prompt
|
|
22
22
|
|
|
23
23
|
def append(target, *args, delim: false, escape: false, quote: true, strip: nil, force: true, double: false,
|
|
24
|
-
filter: nil, **)
|
|
24
|
+
filter: nil, preserve: true, **)
|
|
25
25
|
return if (ret = args.flatten).empty?
|
|
26
26
|
|
|
27
27
|
target << '--' if delim && !target.include?('--')
|
|
@@ -51,7 +51,7 @@ module Squared
|
|
|
51
51
|
if !(pa = val.is_a?(Pathname)) && escape
|
|
52
52
|
shell_escape(val, quote: quote, double: double)
|
|
53
53
|
elsif quote || pa
|
|
54
|
-
shell_quote(val, force: force, double: double)
|
|
54
|
+
shell_quote(val, force: force, double: double, preserve: preserve)
|
|
55
55
|
else
|
|
56
56
|
val
|
|
57
57
|
end
|
|
@@ -354,9 +354,9 @@ module Squared
|
|
|
354
354
|
self
|
|
355
355
|
end
|
|
356
356
|
|
|
357
|
-
def append(*args, **kwargs, &blk)
|
|
358
|
-
args = extras if args.empty?
|
|
359
|
-
out = OptionPartition.append(target, *args, **kwargs, &blk)
|
|
357
|
+
def append(*args, clear: false, preserve: '"', **kwargs, &blk)
|
|
358
|
+
args = clear ? extras.dup.tap { extras.clear } : extras if args.empty?
|
|
359
|
+
out = OptionPartition.append(target, *args, preserve: preserve, **kwargs, &blk)
|
|
360
360
|
errors.concat(out) if out && (block_given? || kwargs[:filter])
|
|
361
361
|
self
|
|
362
362
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: squared
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- An Pham
|
|
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
124
124
|
- !ruby/object:Gem::Version
|
|
125
125
|
version: '0'
|
|
126
126
|
requirements: []
|
|
127
|
-
rubygems_version: 4.0.
|
|
127
|
+
rubygems_version: 4.0.10
|
|
128
128
|
specification_version: 4
|
|
129
129
|
summary: Rake task generator for managing multi-language workspaces.
|
|
130
130
|
test_files: []
|