build 2.0.0 → 2.1.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/build.gemspec +2 -2
- data/lib/build/chain_node.rb +28 -13
- data/lib/build/rulebook.rb +8 -7
- data/lib/build/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aacb41a16bc0e414fd04e7aecfb8d3647e2b8c5925c35ba44991cee5f7108022
|
4
|
+
data.tar.gz: 3d81a66f4f9d669d1040c3a0677e78fef4af0aae522540b3c2c023dab8efcd56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 182f4ee1649e5f69cc60f6af4f32e11e4f8960bf14feb9cc096aef136a12c3b49efd92f42ca1991b24afbed51e81509c502cff4b295c77a4da876691987c5686
|
7
|
+
data.tar.gz: 509fc310c4be7c16281753748b1625d8fde8085babc4f8bf71840da9867bf50dddd313e848be8c4e99e3c9312a4c853466c7bfeef418d660415228317ecb886c
|
data/build.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.required_ruby_version = '>= 2.0'
|
19
19
|
|
20
20
|
spec.add_dependency "build-graph", "~> 1.0"
|
21
|
-
spec.add_dependency "build-environment", "~> 1.
|
22
|
-
spec.add_dependency "build-dependency", "~> 1.
|
21
|
+
spec.add_dependency "build-environment", "~> 1.3"
|
22
|
+
spec.add_dependency "build-dependency", "~> 1.4"
|
23
23
|
spec.add_dependency "build-makefile", "~> 1.0"
|
24
24
|
|
25
25
|
spec.add_dependency "graphviz"
|
data/lib/build/chain_node.rb
CHANGED
@@ -39,29 +39,42 @@ module Build
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def apply_dependency(scope, dependency)
|
42
|
-
|
42
|
+
logger = scope.logger
|
43
43
|
|
44
|
-
#
|
45
|
-
provision = @chain.resolved[dependency].first
|
44
|
+
# logger.debug {"Traversing: #{dependency}..."}
|
46
45
|
|
47
46
|
environments = [@environment]
|
48
47
|
public_environments = []
|
48
|
+
provisions = @chain.resolved[dependency]
|
49
|
+
public_alias = dependency.alias?
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
provisions.each do |provision|
|
52
|
+
provision.each_dependency do |nested_dependency|
|
53
|
+
if environment = apply_dependency(scope, nested_dependency)
|
54
|
+
# logger.debug("Evaluating #{nested_dependency} -> #{provision} generated: #{environment}")
|
55
|
+
|
56
|
+
environments << environment
|
57
|
+
|
58
|
+
if public_alias || nested_dependency.public?
|
59
|
+
public_environments << environment
|
60
|
+
# else
|
61
|
+
# logger.debug("Skipping #{nested_dependency} in public environment.")
|
62
|
+
end
|
56
63
|
end
|
57
64
|
end
|
58
65
|
end
|
59
66
|
|
60
67
|
unless dependency.alias?
|
61
|
-
|
68
|
+
logger.debug {"Building: #{dependency}"}
|
69
|
+
|
70
|
+
# environments.each do |environment|
|
71
|
+
# logger.debug {"Using #{environment}"}
|
72
|
+
# end
|
62
73
|
|
63
74
|
local_environment = Build::Environment.combine(*environments)&.evaluate || Build::Environment.new
|
64
75
|
|
76
|
+
# logger.debug("Local Environment: #{local_environment}")
|
77
|
+
|
65
78
|
task_class = Rulebook.for(local_environment).with(Task, environment: local_environment)
|
66
79
|
|
67
80
|
task = task_class.new(scope.walker, self, scope.group, logger: scope.logger)
|
@@ -70,11 +83,13 @@ module Build
|
|
70
83
|
|
71
84
|
scope.walker.with(task_class: task_class) do
|
72
85
|
task.visit do
|
73
|
-
output_environment = Build::Environment.new(local_environment)
|
86
|
+
output_environment = Build::Environment.new(local_environment, name: dependency.name)
|
74
87
|
|
75
|
-
|
88
|
+
provisions.each do |provision|
|
89
|
+
output_environment.construct!(task, *@arguments, &provision.value)
|
90
|
+
end
|
76
91
|
|
77
|
-
public_environments << output_environment.dup(parent: nil)
|
92
|
+
public_environments << output_environment.dup(parent: nil, name: dependency.name)
|
78
93
|
end
|
79
94
|
end
|
80
95
|
end
|
data/lib/build/rulebook.rb
CHANGED
@@ -22,7 +22,8 @@ require_relative 'rule'
|
|
22
22
|
|
23
23
|
module Build
|
24
24
|
class Rulebook
|
25
|
-
def initialize
|
25
|
+
def initialize(name = nil)
|
26
|
+
@name = name
|
26
27
|
@rules = {}
|
27
28
|
@processes = {}
|
28
29
|
end
|
@@ -44,6 +45,11 @@ module Build
|
|
44
45
|
def with(superclass, **state)
|
45
46
|
task_class = Class.new(superclass)
|
46
47
|
|
48
|
+
# name = @name
|
49
|
+
# task_class.send(:define_method, :to_s) do
|
50
|
+
# "name"
|
51
|
+
# end
|
52
|
+
|
47
53
|
# Define methods for all processes, e.g. task_class#compile
|
48
54
|
@processes.each do |key, rules|
|
49
55
|
# Define general rules, which use rule applicability for disambiguation:
|
@@ -72,16 +78,11 @@ module Build
|
|
72
78
|
end
|
73
79
|
end
|
74
80
|
|
75
|
-
rulebook = self
|
76
|
-
task_class.send(:define_method, :rulebook) do
|
77
|
-
rulebook
|
78
|
-
end
|
79
|
-
|
80
81
|
return task_class
|
81
82
|
end
|
82
83
|
|
83
84
|
def self.for(environment)
|
84
|
-
rulebook = self.new
|
85
|
+
rulebook = self.new(environment.name)
|
85
86
|
|
86
87
|
environment.defined.each do |name, define|
|
87
88
|
rulebook << define.klass.build(name, &define.block)
|
data/lib/build/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: build
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: build-graph
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: build-dependency
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.4'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
54
|
+
version: '1.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: build-makefile
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|