squared 0.3.12 → 0.3.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 +83 -37
- data/README.md +387 -1274
- data/lib/squared/common/base.rb +1 -1
- data/lib/squared/common/format.rb +2 -2
- data/lib/squared/common/system.rb +1 -1
- data/lib/squared/version.rb +1 -1
- data/lib/squared/workspace/application.rb +19 -15
- data/lib/squared/workspace/project/base.rb +35 -9
- data/lib/squared/workspace/project/node.rb +4 -1
- data/lib/squared/workspace/project/ruby.rb +1 -1
- data/squared.gemspec +4 -4
- metadata +5 -6
- data/README.ruby.md +0 -466
data/lib/squared/common/base.rb
CHANGED
@@ -127,11 +127,11 @@ module Squared
|
|
127
127
|
def apply_style(data, key, args, empty: true)
|
128
128
|
return if data.is_a?(::Symbol) && (data = __get__(:theme)[data]).nil?
|
129
129
|
|
130
|
-
set = ->(k, v) { data[k] = check_style(v, empty: empty) }
|
130
|
+
set = ->(k, v) { data[k.to_sym] = check_style(v, empty: empty) }
|
131
131
|
if key.is_a?(::Hash)
|
132
132
|
key.each { |k, v| set.(k, v || args) }
|
133
133
|
else
|
134
|
-
set.(key
|
134
|
+
set.(key, args)
|
135
135
|
end
|
136
136
|
end
|
137
137
|
|
data/lib/squared/version.rb
CHANGED
@@ -628,9 +628,14 @@ module Squared
|
|
628
628
|
private
|
629
629
|
|
630
630
|
def __build__(default: nil, **)
|
631
|
-
|
632
|
-
|
633
|
-
|
631
|
+
unless task_defined?('squared:version')
|
632
|
+
task 'squared:version' do
|
633
|
+
puts Squared::VERSION
|
634
|
+
end
|
635
|
+
end
|
636
|
+
if default && task_defined?(out = task_name(default))
|
637
|
+
task Rake.application.default_task_name => out
|
638
|
+
end
|
634
639
|
end
|
635
640
|
|
636
641
|
def puts(*args)
|
@@ -664,20 +669,19 @@ module Squared
|
|
664
669
|
end
|
665
670
|
|
666
671
|
def data_get(*args, group: nil, ref: nil, target: nil)
|
667
|
-
if group
|
668
|
-
|
669
|
-
elsif ref
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
ref.each do |key|
|
674
|
-
next unless (ret = target[:ref][key])
|
672
|
+
if group && (ret = target[:group][group.to_sym])
|
673
|
+
ret
|
674
|
+
elsif ref
|
675
|
+
if ref.is_a?(Enumerable)
|
676
|
+
ref.each do |key|
|
677
|
+
next unless (ret = target[:ref][key])
|
675
678
|
|
676
|
-
|
679
|
+
return ret if args.empty? || args.any? { |val| ret.key?(val) }
|
680
|
+
end
|
681
|
+
nil
|
682
|
+
else
|
683
|
+
target[:ref][ref]
|
677
684
|
end
|
678
|
-
nil
|
679
|
-
elsif ref
|
680
|
-
target[:ref][ref]
|
681
685
|
end
|
682
686
|
end
|
683
687
|
|
@@ -15,7 +15,7 @@ module Squared
|
|
15
15
|
include Rake::DSL
|
16
16
|
|
17
17
|
VAR_SET = %i[parent global envname dependfile theme run script env pass].freeze
|
18
|
-
SEM_VER = /\b(\d+)(?:(\.)(\d+))?(?:(\.)(\d+)(\S+)
|
18
|
+
SEM_VER = /\b(\d+)(?:(\.)(\d+))?(?:(\.)(\d+))?[-.]?(\S+)?\b/.freeze
|
19
19
|
private_constant :VAR_SET, :SEM_VER
|
20
20
|
|
21
21
|
class << self
|
@@ -255,7 +255,7 @@ module Squared
|
|
255
255
|
flags.each do |flag|
|
256
256
|
case action
|
257
257
|
when 'graph'
|
258
|
-
|
258
|
+
break unless graph?
|
259
259
|
|
260
260
|
format_desc action, flag, '(-)project*'
|
261
261
|
task flag do |_, args|
|
@@ -814,7 +814,7 @@ module Squared
|
|
814
814
|
done
|
815
815
|
end
|
816
816
|
|
817
|
-
def graph_collect(target, start = [], data: {}, pass: [])
|
817
|
+
def graph_collect(target, start = [], data: {}, pass: [], root: [])
|
818
818
|
deps = []
|
819
819
|
(start.empty? ? target.instance_variable_get(:@graph) : start)&.each do |val|
|
820
820
|
next if pass.include?(val)
|
@@ -826,18 +826,21 @@ module Squared
|
|
826
826
|
else
|
827
827
|
items = workspace.find(group: val, ref: val.to_sym)
|
828
828
|
end
|
829
|
-
|
830
829
|
items.each do |proj|
|
831
|
-
next if pass.include?(proj.name)
|
830
|
+
next if pass.include?(name = proj.name)
|
832
831
|
|
833
|
-
|
834
|
-
|
832
|
+
if proj.graph? && !data.key?(name) && !root.include?(name)
|
833
|
+
graph_collect(proj, data: data, pass: pass, root: root + [name, target.name])
|
834
|
+
end
|
835
|
+
next if (objs = data.fetch(name, [])).include?(target)
|
835
836
|
|
836
837
|
deps << proj
|
837
|
-
deps
|
838
|
+
deps.concat(objs)
|
838
839
|
end
|
839
840
|
end
|
840
|
-
|
841
|
+
deps.uniq!
|
842
|
+
deps.delete(target)
|
843
|
+
data[target.name] = deps
|
841
844
|
data
|
842
845
|
end
|
843
846
|
|
@@ -1270,6 +1273,29 @@ module Squared
|
|
1270
1273
|
fill ? semver(ret) : ret
|
1271
1274
|
end
|
1272
1275
|
|
1276
|
+
def semcmp(val, other)
|
1277
|
+
return 0 if val == other
|
1278
|
+
|
1279
|
+
a, b = [val, other].map! { |ver| ver.scan(SEM_VER) }
|
1280
|
+
return -1 if b.empty?
|
1281
|
+
return 1 if a.empty?
|
1282
|
+
|
1283
|
+
a, b = [a.first, b.first].map! do |c|
|
1284
|
+
begin
|
1285
|
+
d = Integer(c[5]).to_s
|
1286
|
+
rescue StandardError
|
1287
|
+
d = c[5] ? '-1' : '0'
|
1288
|
+
end
|
1289
|
+
[c[0], c[2], c[4] || '0', d]
|
1290
|
+
end
|
1291
|
+
a.each_with_index do |c, index|
|
1292
|
+
next if c == (d = b[index])
|
1293
|
+
|
1294
|
+
return c.to_i < d.to_i ? 1 : -1
|
1295
|
+
end
|
1296
|
+
0
|
1297
|
+
end
|
1298
|
+
|
1273
1299
|
def indexitem(val)
|
1274
1300
|
[$1.to_i, $2 && $2[1..-1]] if val =~ /\A#{Regexp.escape(indexchar)}(\d+)(:.+)?\z/
|
1275
1301
|
end
|
@@ -638,15 +638,18 @@ module Squared
|
|
638
638
|
when :major
|
639
639
|
if seg[0] != '0' || seg[2].nil?
|
640
640
|
seg[0] = seg[0].succ
|
641
|
+
seg[2] = '0'
|
641
642
|
else
|
642
643
|
seg[2] = seg[2].succ
|
643
644
|
end
|
645
|
+
seg[4] = '0'
|
644
646
|
when :minor
|
645
647
|
if seg[0] == '0'
|
646
648
|
seg[4] &&= seg[4].succ
|
647
649
|
else
|
648
650
|
seg[2] = seg[2].succ
|
649
651
|
end
|
652
|
+
seg[4] = '0'
|
650
653
|
when :patch
|
651
654
|
seg[4] &&= seg[4].succ
|
652
655
|
end
|
@@ -834,7 +837,7 @@ module Squared
|
|
834
837
|
else
|
835
838
|
if key
|
836
839
|
@pm[key]
|
837
|
-
elsif (ret = @pm[:_]) && !(version && ret[(ret.index('@') + 1)..-1]
|
840
|
+
elsif (ret = @pm[:_]) && !(version && semcmp(ret[(ret.index('@') + 1)..-1], version) == 1)
|
838
841
|
ret
|
839
842
|
end
|
840
843
|
end
|
@@ -481,7 +481,7 @@ module Squared
|
|
481
481
|
when :exec
|
482
482
|
raise_error('gem', flag, hint: 'no command given') if out.empty?
|
483
483
|
cmd << basic_option('gem', project) unless session_arg?('g', 'gem')
|
484
|
-
cmd <<
|
484
|
+
cmd << out.join(' ')
|
485
485
|
else
|
486
486
|
if out.empty? && cmd.none? { |val| val =~ /^--system(?:=|$)/ }
|
487
487
|
raise_error('gem', flag, hint: 'no gemname given')
|
data/squared.gemspec
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
version = File.read(File.join(__dir__, "lib/squared/version.rb"))[/\bVERSION = '(.+)'$/, 1]
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "squared"
|
7
|
-
spec.version =
|
7
|
+
spec.version = version
|
8
8
|
spec.authors = ["An Pham"]
|
9
9
|
spec.email = ["anpham6@gmail.com"]
|
10
10
|
|
11
11
|
spec.summary = %q{Rake task generator for managing multi-language workspaces.}
|
12
12
|
spec.description = %q{Rake task generator for managing multi-language workspaces.}
|
13
|
-
spec.homepage = "https://github.com/anpham6/squared"
|
13
|
+
spec.homepage = "https://github.com/anpham6/squared-ruby"
|
14
14
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
15
15
|
spec.licenses = ["BSD-3-Clause"]
|
16
16
|
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.metadata["documentation_uri"] = "https://squared.readthedocs.io"
|
20
20
|
|
21
21
|
spec.files = Dir["lib/**/*"] +
|
22
|
-
%w[CHANGELOG.md LICENSE README.md
|
22
|
+
%w[CHANGELOG.md LICENSE README.md squared.gemspec]
|
23
23
|
spec.bindir = "exe"
|
24
24
|
spec.executables = []
|
25
25
|
spec.require_paths = ["lib"]
|
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.3.
|
4
|
+
version: 0.3.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- An Pham
|
@@ -75,7 +75,6 @@ files:
|
|
75
75
|
- CHANGELOG.md
|
76
76
|
- LICENSE
|
77
77
|
- README.md
|
78
|
-
- README.ruby.md
|
79
78
|
- lib/squared.rb
|
80
79
|
- lib/squared/app.rb
|
81
80
|
- lib/squared/common.rb
|
@@ -99,12 +98,12 @@ files:
|
|
99
98
|
- lib/squared/workspace/repo.rb
|
100
99
|
- lib/squared/workspace/series.rb
|
101
100
|
- squared.gemspec
|
102
|
-
homepage: https://github.com/anpham6/squared
|
101
|
+
homepage: https://github.com/anpham6/squared-ruby
|
103
102
|
licenses:
|
104
103
|
- BSD-3-Clause
|
105
104
|
metadata:
|
106
|
-
homepage_uri: https://github.com/anpham6/squared
|
107
|
-
source_code_uri: https://github.com/anpham6/squared
|
105
|
+
homepage_uri: https://github.com/anpham6/squared-ruby
|
106
|
+
source_code_uri: https://github.com/anpham6/squared-ruby
|
108
107
|
documentation_uri: https://squared.readthedocs.io
|
109
108
|
rdoc_options: []
|
110
109
|
require_paths:
|
@@ -120,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
119
|
- !ruby/object:Gem::Version
|
121
120
|
version: '0'
|
122
121
|
requirements: []
|
123
|
-
rubygems_version: 3.6.
|
122
|
+
rubygems_version: 3.6.9
|
124
123
|
specification_version: 4
|
125
124
|
summary: Rake task generator for managing multi-language workspaces.
|
126
125
|
test_files: []
|