squared 0.5.13 → 0.5.15
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 +31 -0
- data/lib/squared/common/format.rb +2 -2
- data/lib/squared/version.rb +1 -1
- data/lib/squared/workspace/project/base.rb +27 -26
- data/lib/squared/workspace/project/support/class.rb +81 -15
- 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: bb26d6cf2dfdece4362de8ae2e5748eb11cc05e4158d4d81a43c1c63320764b4
|
|
4
|
+
data.tar.gz: 2d01a9695d8953acd20d568be48089424bc1afc23039f372d1125a77562792bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c3f191d7014c93cb20c6ace155e9b3e56561e8d88ad48f67793da484d73b50e7d7fa183ba7f52dfdfc7d434c1acedd1a748d4e95b8726763235fd5e45df893d7
|
|
7
|
+
data.tar.gz: f7ce5072078a05a56c850420f17b3923444b8581e7bd06a71d61a13197ac91b05d883edad0774b890c28edd79bd8da597e0accac53559f8bd1da152890d708f9
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.15] - 2025-11-08
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- See `0.4.29`.
|
|
8
|
+
|
|
9
|
+
## [0.4.29] - 2025-11-08
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- OptionPartition was created by mistake and is unreliable in every way.
|
|
14
|
+
|
|
15
|
+
## [0.5.14] - 2025-11-08
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- See `0.4.28`.
|
|
20
|
+
|
|
21
|
+
## [0.4.28] - 2025-11-08
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Project base method build as arrays parsed unrelated arguments.
|
|
26
|
+
- OptionPartition method arg? does not check after "--" delimiter.
|
|
27
|
+
- OptionPartition did not support duplicate values after "--" delimiter.
|
|
28
|
+
- OptionPartition method opt? did not type check for String.
|
|
29
|
+
|
|
3
30
|
## [0.5.13] - 2025-11-05
|
|
4
31
|
|
|
5
32
|
### Fixed
|
|
@@ -1202,6 +1229,8 @@
|
|
|
1202
1229
|
|
|
1203
1230
|
- Changelog was created.
|
|
1204
1231
|
|
|
1232
|
+
[0.5.15]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.15
|
|
1233
|
+
[0.5.14]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.14
|
|
1205
1234
|
[0.5.13]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.13
|
|
1206
1235
|
[0.5.12]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.12
|
|
1207
1236
|
[0.5.11]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.11
|
|
@@ -1216,6 +1245,8 @@
|
|
|
1216
1245
|
[0.5.2]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.2-ruby
|
|
1217
1246
|
[0.5.1]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.1-ruby
|
|
1218
1247
|
[0.5.0]: https://github.com/anpham6/squared-ruby/releases/tag/v0.5.0-ruby
|
|
1248
|
+
[0.4.29]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.29
|
|
1249
|
+
[0.4.28]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.28
|
|
1219
1250
|
[0.4.27]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.27
|
|
1220
1251
|
[0.4.26]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.26
|
|
1221
1252
|
[0.4.25]: https://github.com/anpham6/squared-ruby/releases/tag/v0.4.25
|
|
@@ -255,8 +255,8 @@ module Squared
|
|
|
255
255
|
sub.each { |h| s = sub_style(s, **h) }
|
|
256
256
|
s = "#{b0} #{s} #{b0}"
|
|
257
257
|
if border
|
|
258
|
-
s = sub_style(s, pat: /\A(#{Regexp.escape(b0)})(.+)\z/
|
|
259
|
-
s = sub_style(s, pat: /\A(.+)(#{Regexp.escape(b0)})\z/
|
|
258
|
+
s = sub_style(s, pat: /\A(#{Regexp.escape(b0)})(.+)\z/om, styles: border)
|
|
259
|
+
s = sub_style(s, pat: /\A(.+)(#{Regexp.escape(b0)})\z/om, styles: border, index: 2)
|
|
260
260
|
end
|
|
261
261
|
s
|
|
262
262
|
end
|
data/lib/squared/version.rb
CHANGED
|
@@ -525,31 +525,31 @@ module Squared
|
|
|
525
525
|
cmd = cmd.join(' && ')
|
|
526
526
|
else
|
|
527
527
|
cmd, opts, var, flags, extra = args
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
return run_b(cmd, sync: sync, from: from) if cmd.is_a?(Proc) || cmd.is_a?(Method)
|
|
528
|
+
if cmd
|
|
529
|
+
return run_b(cmd, sync: sync, from: from) if cmd.is_a?(Proc) || cmd.is_a?(Method)
|
|
531
530
|
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
531
|
+
cmd = as_get(cmd, from)
|
|
532
|
+
opts = compose(opts, script: false) if opts && respond_to?(:compose)
|
|
533
|
+
flags = append_hash(flags, target: []).join(' ') if flags.is_a?(Hash)
|
|
534
|
+
case opts
|
|
535
|
+
when Hash
|
|
536
|
+
cmd = Array(cmd).append(flags)
|
|
537
|
+
.concat(append_hash(opts, target: [], build: true))
|
|
538
|
+
.compact
|
|
539
|
+
.join(' ')
|
|
540
|
+
when Enumerable
|
|
541
|
+
cmd = Array(cmd).concat(opts.to_a)
|
|
542
|
+
cmd.map! { |val| "#{val} #{flags}" } if flags
|
|
543
|
+
cmd = cmd.join(' && ')
|
|
544
|
+
else
|
|
545
|
+
cmd = [cmd, flags, opts].compact.join(' ') if opts || flags
|
|
546
|
+
end
|
|
545
547
|
else
|
|
546
|
-
|
|
547
|
-
end
|
|
548
|
-
else
|
|
549
|
-
return unless (opts || extra) && respond_to?(:compose)
|
|
548
|
+
return unless (opts || extra) && respond_to?(:compose)
|
|
550
549
|
|
|
551
|
-
|
|
552
|
-
|
|
550
|
+
cmd = compose(as_get(opts, from), flags, script: true, args: extra, from: from)
|
|
551
|
+
from = :script if from == :run && script?
|
|
552
|
+
end
|
|
553
553
|
end
|
|
554
554
|
run(cmd, var, sync: sync, from: from, banner: banner)
|
|
555
555
|
end
|
|
@@ -568,12 +568,12 @@ module Squared
|
|
|
568
568
|
if proj.respond_to?(meth.to_sym)
|
|
569
569
|
begin
|
|
570
570
|
proj.__send__(meth, sync: sync)
|
|
571
|
-
next
|
|
572
571
|
rescue StandardError => e
|
|
573
572
|
on_error(e, :prereqs, exception: true)
|
|
574
573
|
end
|
|
574
|
+
else
|
|
575
|
+
print_error(name, "method: #{meth}", subject: 'prereqs', hint: 'undefined')
|
|
575
576
|
end
|
|
576
|
-
print_error(name, 'method not found', subject: 'prereqs', hint: meth)
|
|
577
577
|
end
|
|
578
578
|
elsif proj.build?
|
|
579
579
|
proj.build(sync: sync)
|
|
@@ -1307,7 +1307,7 @@ module Squared
|
|
|
1307
1307
|
end
|
|
1308
1308
|
ret = JoinSet.new(cmd.flatten(1))
|
|
1309
1309
|
if options && (val = env("#{prefix.upcase}_OPTIONS"))
|
|
1310
|
-
split_escape(val).each { |opt| ret.last(fill_option(opt), /\A(--?[
|
|
1310
|
+
split_escape(val).each { |opt| ret.last(fill_option(opt), /\A(--?[^\[\]=\s-][^\[\]=\s]*)[=\s].+\z/m) }
|
|
1311
1311
|
end
|
|
1312
1312
|
main ? @session = ret : ret
|
|
1313
1313
|
end
|
|
@@ -1593,11 +1593,12 @@ module Squared
|
|
|
1593
1593
|
**kwargs)
|
|
1594
1594
|
return if list.empty?
|
|
1595
1595
|
|
|
1596
|
+
kwargs[:ignore] = false if no && !kwargs.key?(:ignore)
|
|
1596
1597
|
[].tap do |ret|
|
|
1597
1598
|
list.flatten.each do |flag|
|
|
1598
1599
|
next unless (val = option(flag, target: target, **kwargs))
|
|
1599
1600
|
|
|
1600
|
-
if val == '0'
|
|
1601
|
+
if no && val == '0'
|
|
1601
1602
|
flag = "no-#{flag}"
|
|
1602
1603
|
val = nil
|
|
1603
1604
|
end
|
|
@@ -11,7 +11,7 @@ module Squared
|
|
|
11
11
|
extend Forwardable
|
|
12
12
|
|
|
13
13
|
OPT_NAME = /\A(?:(--)|-)((?(1)[^\[\]=\s-][^\[\]=\s]*|[^\[\]=\s-]))\z/
|
|
14
|
-
OPT_VALUE = /\A-{0,2}([^\[\]=\s-][^\[\]=\s]*)(
|
|
14
|
+
OPT_VALUE = /\A-{0,2}([^\[\]=\s-][^\[\]=\s]*)(?:=|\s+)(\S.*)\z/
|
|
15
15
|
OPT_SINGLE = /\A-([^\[\]=\s-])(.+)\z/
|
|
16
16
|
private_constant :OPT_NAME, :OPT_VALUE, :OPT_SINGLE
|
|
17
17
|
|
|
@@ -27,7 +27,7 @@ module Squared
|
|
|
27
27
|
target << '--' if delim && !target.include?('--')
|
|
28
28
|
if strip
|
|
29
29
|
pat, s = Array(strip)
|
|
30
|
-
ret.map! { |val| val.gsub(pat, s || '') }
|
|
30
|
+
ret.map! { |val| val.is_a?(String) ? val.gsub(pat, s || '') : val }
|
|
31
31
|
end
|
|
32
32
|
if escape || quote
|
|
33
33
|
ret.map! do |val|
|
|
@@ -89,11 +89,16 @@ module Squared
|
|
|
89
89
|
def arg?(target, *args, value: false, **)
|
|
90
90
|
r, s = args.partition { |val| val.is_a?(Regexp) }
|
|
91
91
|
r << matchopts(s, value) unless s.empty?
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
a = target.to_a
|
|
93
|
+
if (n = a.index('--'))
|
|
94
|
+
a = a[0..n]
|
|
95
|
+
end
|
|
96
|
+
r.any? { |pat| a.any?(pat) }
|
|
94
97
|
end
|
|
95
98
|
|
|
96
99
|
def opt?(val)
|
|
100
|
+
return false unless val.is_a?(String)
|
|
101
|
+
|
|
97
102
|
val.start_with?('-') && (OPT_NAME.match?(val) || OPT_VALUE.match?(val) || OPT_SINGLE.match?(val))
|
|
98
103
|
end
|
|
99
104
|
|
|
@@ -116,13 +121,13 @@ module Squared
|
|
|
116
121
|
end
|
|
117
122
|
|
|
118
123
|
def shortopt(*group)
|
|
119
|
-
group.map! { |s| s.delete_prefix('-') }
|
|
120
|
-
"-(?:#{
|
|
124
|
+
group.map! { |s| Regexp.escape(s.delete_prefix('-')) }
|
|
125
|
+
"-(?:#{group.join('|')})(?:\\z|[^ =]| +[^ -])"
|
|
121
126
|
end
|
|
122
127
|
|
|
123
128
|
def longopt(*group, value)
|
|
124
|
-
group.map! { |s| s.delete_prefix('--') }
|
|
125
|
-
"--(?:#{
|
|
129
|
+
group.map! { |s| Regexp.escape(s.delete_prefix('--')) }
|
|
130
|
+
"--(?:#{group.join('|')})(?:#{value ? '=[^ ]| +[^ -]' : '[= ]|\z'})"
|
|
126
131
|
end
|
|
127
132
|
end
|
|
128
133
|
|
|
@@ -530,11 +535,16 @@ module Squared
|
|
|
530
535
|
super[/[^:]+\z/, 0]
|
|
531
536
|
end
|
|
532
537
|
|
|
533
|
-
|
|
538
|
+
alias to_ary to_a
|
|
534
539
|
|
|
535
|
-
|
|
536
|
-
|
|
540
|
+
attr_reader :delim, :extras
|
|
541
|
+
|
|
542
|
+
def initialize(data = [], delim: ' ', partition: '--', uniq: /\A--?[^\[\]=\s-][^\[\]=\s]*(?:=|\s+)\S/)
|
|
537
543
|
@delim = delim
|
|
544
|
+
@partition = partition
|
|
545
|
+
@uniq = uniq
|
|
546
|
+
@extras = []
|
|
547
|
+
super(data.compact)
|
|
538
548
|
end
|
|
539
549
|
|
|
540
550
|
def last(val, pat)
|
|
@@ -543,7 +553,7 @@ module Squared
|
|
|
543
553
|
end
|
|
544
554
|
|
|
545
555
|
def pass(&blk)
|
|
546
|
-
ret =
|
|
556
|
+
ret = to_ary.map!(&:to_s).reject(&:empty?)
|
|
547
557
|
@last&.each do |val, pat, key|
|
|
548
558
|
i = []
|
|
549
559
|
j = nil
|
|
@@ -564,6 +574,7 @@ module Squared
|
|
|
564
574
|
end
|
|
565
575
|
ret[i.last] = val
|
|
566
576
|
end
|
|
577
|
+
ret.concat(extras.map(&:to_s).reject(&:empty?)) unless extras.empty?
|
|
567
578
|
return ret unless block_given?
|
|
568
579
|
|
|
569
580
|
ret.reject(&blk)
|
|
@@ -585,18 +596,73 @@ module Squared
|
|
|
585
596
|
|
|
586
597
|
def temp(*args, &blk)
|
|
587
598
|
args.compact!
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
599
|
+
pass(&blk)
|
|
600
|
+
.concat(args)
|
|
601
|
+
.join(@delim)
|
|
591
602
|
end
|
|
592
603
|
|
|
593
604
|
def done
|
|
594
605
|
to_s.tap { clear }
|
|
595
606
|
end
|
|
596
607
|
|
|
608
|
+
def merge(enum)
|
|
609
|
+
if !extras.empty?
|
|
610
|
+
extras.concat(enum.to_a)
|
|
611
|
+
self
|
|
612
|
+
elsif (n = enum.find_index { |val| extras?(val) })
|
|
613
|
+
data = enum.to_a
|
|
614
|
+
@extras = if n == 0
|
|
615
|
+
data
|
|
616
|
+
else
|
|
617
|
+
super(data[0...n])
|
|
618
|
+
data[n..-1]
|
|
619
|
+
end
|
|
620
|
+
self
|
|
621
|
+
else
|
|
622
|
+
super
|
|
623
|
+
end
|
|
624
|
+
end
|
|
625
|
+
|
|
626
|
+
def <<(obj)
|
|
627
|
+
extras!(obj) || super
|
|
628
|
+
end
|
|
629
|
+
|
|
630
|
+
def add?(obj)
|
|
631
|
+
extras!(obj) || super
|
|
632
|
+
end
|
|
633
|
+
|
|
634
|
+
def to_a
|
|
635
|
+
pass
|
|
636
|
+
end
|
|
637
|
+
|
|
597
638
|
def to_s
|
|
598
639
|
pass.join(@delim)
|
|
599
640
|
end
|
|
641
|
+
|
|
642
|
+
def to_enum(*args)
|
|
643
|
+
pass.to_enum(*args)
|
|
644
|
+
end
|
|
645
|
+
|
|
646
|
+
def to_json(*args)
|
|
647
|
+
pass.to_json(*args)
|
|
648
|
+
end
|
|
649
|
+
|
|
650
|
+
def to_yaml(*args)
|
|
651
|
+
pass.to_yaml(*args)
|
|
652
|
+
end
|
|
653
|
+
|
|
654
|
+
private
|
|
655
|
+
|
|
656
|
+
def extras!(obj)
|
|
657
|
+
return if extras.empty? && !extras?(obj)
|
|
658
|
+
|
|
659
|
+
extras << obj unless !extras.include?(@partition) && include?(obj) && @uniq.match?(obj.to_s)
|
|
660
|
+
self
|
|
661
|
+
end
|
|
662
|
+
|
|
663
|
+
def extras?(obj)
|
|
664
|
+
obj == @partition || (include?(obj) && !@uniq.match?(obj.to_s))
|
|
665
|
+
end
|
|
600
666
|
end
|
|
601
667
|
end
|
|
602
668
|
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.5.
|
|
4
|
+
version: 0.5.15
|
|
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: 3.
|
|
127
|
+
rubygems_version: 3.6.9
|
|
128
128
|
specification_version: 4
|
|
129
129
|
summary: Rake task generator for managing multi-language workspaces.
|
|
130
130
|
test_files: []
|