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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9cc4f25b15c353f405140484002cf0106fa5cdfc115269ff256d92fcc86be47f
4
- data.tar.gz: d92ce080796f19b6a1a3ff80acbd51b43f97845ac201c7ea295da464e64daf34
3
+ metadata.gz: aacb41a16bc0e414fd04e7aecfb8d3647e2b8c5925c35ba44991cee5f7108022
4
+ data.tar.gz: 3d81a66f4f9d669d1040c3a0677e78fef4af0aae522540b3c2c023dab8efcd56
5
5
  SHA512:
6
- metadata.gz: a0924bb939bbb829cd707df95fe25b0ed21965dd1d0a87509f1adeb9bb4f9a16df2e35dedeed89ffc68a31763d3db3a8766b7b60b4338f4996b87c135357f1cf
7
- data.tar.gz: 58b0a8611fa3549816e8ecc837876fd33be5b3c6eae51fc868ad8063f1e0810fdb948ea4a80864123c73077308f47ccde5f35ea50665a89f0c74d7c0c2c8a805
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.2"
22
- spec.add_dependency "build-dependency", "~> 1.2"
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"
@@ -39,29 +39,42 @@ module Build
39
39
  end
40
40
 
41
41
  def apply_dependency(scope, dependency)
42
- # puts "Traversing #{dependency.name}..."
42
+ logger = scope.logger
43
43
 
44
- # Not sure why need first
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
- provision.each_dependency do |dependency|
51
- if environment = apply_dependency(scope, dependency)
52
- environments << environment
53
-
54
- unless dependency.private?
55
- public_environments << environment
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
- # puts "Building #{dependency.name}: #{provision.value}..."
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
- output_environment.construct!(task, *@arguments, &provision.value)
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
@@ -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
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Build
22
- VERSION = "2.0.0"
22
+ VERSION = "2.1.0"
23
23
  end
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.0.0
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-14 00:00:00.000000000 Z
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.2'
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.2'
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.2'
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.2'
54
+ version: '1.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: build-makefile
57
57
  requirement: !ruby/object:Gem::Requirement