dapp 0.7.20 → 0.7.21

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
  SHA1:
3
- metadata.gz: 96bc677343a9749478a52286ccb933740bc6e557
4
- data.tar.gz: ab744c2f9d2be05923483460de051cafce13d646
3
+ metadata.gz: 1f9e155a712a0ed1bf5eee4f2eb9eb3ee058e38d
4
+ data.tar.gz: f490000499dcdb9654ed0afb7d92b2bd6d8d5073
5
5
  SHA512:
6
- metadata.gz: 4f229985856b89b0ff2379b465b37255729adc1f4c2fa9ae527885a7a08dbd1a4bd1927e520bdb13cdd0d6bcf6a2eb6b51dfbbda92e7542b202c7e07cfc7b7a5
7
- data.tar.gz: 9c43f662cdabe89c20e063f001bc0bf1cfe2779d8cf03bb45f37b1708050ab3b461304b41bf5d79382ad0573fd1374c72637ef0e6d49c9fd4166bb56ba1dc31c
6
+ metadata.gz: 0ecc323bb36092b93fb788ee1ac3fb152b42891f64b7e4d904c905f55fdc6d4393252763789f03c1484fd4df06d35c3c1d6e3a0efafe930ae8508289cd195b3f
7
+ data.tar.gz: 0e3bac35a542c600f1cd39d561ddcef7c41899faecdbefc94aeca8b53e25b251f6c3324238529583889c2d386843d53b81ce84153561d11c891395e7bcca543c
data/lib/dapp.rb CHANGED
@@ -64,7 +64,6 @@ require 'dapp/filelock'
64
64
  require 'dapp/config/base'
65
65
  require 'dapp/config/directive/base'
66
66
  require 'dapp/config/dimg/instance_methods'
67
- require 'dapp/config/dimg/merging'
68
67
  require 'dapp/config/dimg/validation'
69
68
  require 'dapp/config/dimg'
70
69
  require 'dapp/config/artifact_dimg'
@@ -30,9 +30,14 @@ module Dapp
30
30
 
31
31
  def export(*args, &blk)
32
32
  _export.concat begin
33
- artifact_config = pass_to(ArtifactDimg.new("artifact-#{SecureRandom.hex(2)}", project: project))
33
+ artifact_config = pass_to_default(ArtifactDimg.new(
34
+ "artifact-#{SecureRandom.hex(2)}",
35
+ project: project
36
+ ))
37
+
34
38
  artifact = Directive::Artifact.new(project: project, config: artifact_config)
35
39
  artifact.send(:export, *args, &blk)
40
+
36
41
  artifact._export
37
42
  end
38
43
  end
@@ -44,7 +49,7 @@ module Dapp
44
49
  end
45
50
 
46
51
  def passed_directives
47
- super << :artifact_dependencies
52
+ super << :@_artifact_dependencies
48
53
  end
49
54
  end
50
55
  end
@@ -28,6 +28,10 @@ module Dapp
28
28
  def _clone
29
29
  Marshal.load Marshal.dump(self)
30
30
  end
31
+
32
+ def _clone_to(obj)
33
+ obj.marshal_load marshal_dump
34
+ end
31
35
  end
32
36
  end
33
37
  end
@@ -4,7 +4,6 @@ module Dapp
4
4
  class Dimg < Base
5
5
  include Validation
6
6
  include InstanceMethods
7
- include Merging
8
7
 
9
8
  attr_reader :_name
10
9
 
@@ -35,7 +35,7 @@ module Dapp
35
35
 
36
36
  def artifact(&blk)
37
37
  _artifact.concat begin
38
- pass_to(ArtifactGroup.new(project: project)).tap do |artifact_group|
38
+ pass_to_custom(ArtifactGroup.new(project: project), :clone_to_artifact).tap do |artifact_group|
39
39
  artifact_group.instance_eval(&blk) if block_given?
40
40
  end._export
41
41
  end
@@ -160,34 +160,33 @@ module Dapp
160
160
  directive
161
161
  end
162
162
 
163
- def pass_to(obj)
164
- passed_directives.each do |directive|
165
- directive_variable_name = :"@_#{directive}"
166
-
167
- next if (value = instance_variable_get(directive_variable_name)).nil?
168
- obj_value = obj.instance_variable_get(directive_variable_name)
163
+ def pass_to_default(dimg)
164
+ pass_to_custom(dimg, :clone)
165
+ end
169
166
 
170
- if value.is_a?(Directive::Base)
171
- obj.builder(directive) if [:chef, :shell].include? directive
172
- if obj_value.nil?
173
- obj.instance_variable_set(directive_variable_name, value.send(:_clone))
167
+ def pass_to_custom(obj, clone_method)
168
+ passed_directives.each do |directive|
169
+ next if (variable = instance_variable_get(directive)).nil?
170
+
171
+ obj.instance_variable_set(directive, begin
172
+ case variable
173
+ when Directive::Base, GitArtifact then variable.send(clone_method)
174
+ when Symbol then variable
175
+ when Array then variable.dup
176
+ when TrueClass, FalseClass then variable
174
177
  else
175
- obj_value.send(:merge, value)
178
+ raise
176
179
  end
177
- elsif respond_to?(:"merge_#{directive}", true)
178
- obj.instance_variable_set(directive_variable_name, send(:"merge_#{directive}", obj_value, value))
179
- else
180
- raise
181
- end
180
+ end)
182
181
  end
183
182
  obj
184
183
  end
185
184
 
186
185
  def passed_directives
187
- [:chef, :shell, :docker,
188
- :git_artifact, :mount,
189
- :artifact, :builder, :dev_mode,
190
- :install_dependencies, :setup_dependencies]
186
+ [:@_chef, :@_shell, :@_docker,
187
+ :@_git_artifact, :@_mount,
188
+ :@_artifact, :@_builder, :@_dev_mode,
189
+ :@_install_dependencies, :@_setup_dependencies]
191
190
  end
192
191
  end
193
192
  end
@@ -22,9 +22,8 @@ module Dapp
22
22
  end
23
23
 
24
24
  def directives_validate!
25
- passed_directives.each do |directive|
26
- directive_variable_name = :"@_#{directive}"
27
- next if (value = instance_variable_get(directive_variable_name)).nil?
25
+ passed_directives.each do |v|
26
+ next if (value = instance_variable_get(v)).nil?
28
27
  Array(value).each do |elm|
29
28
  elm.send(:validate!) if elm.methods.include?(:validate!)
30
29
  end
@@ -3,7 +3,6 @@ module Dapp
3
3
  # DimgGroup
4
4
  class DimgGroup < DimgGroupBase
5
5
  include Dimg::InstanceMethods
6
- include Dimg::Merging
7
6
 
8
7
  def chef(&blk)
9
8
  check_dimg_directive_order(:chef)
@@ -38,11 +37,11 @@ module Dapp
38
37
  protected
39
38
 
40
39
  def before_dimg_eval(dimg)
41
- pass_to(dimg)
40
+ pass_to_default(dimg)
42
41
  end
43
42
 
44
43
  def before_dimg_group_eval(dimg_group)
45
- pass_to(dimg_group)
44
+ pass_to_default(dimg_group)
46
45
  end
47
46
 
48
47
  def check_dimg_directive_order(directive)
@@ -17,16 +17,16 @@ module Dapp
17
17
 
18
18
  def dimg(name = nil, &blk)
19
19
  Config::Dimg.new(name, project: project).tap do |dimg|
20
+ before_dimg_eval(dimg)
20
21
  dimg.instance_eval(&blk) if block_given?
21
- after_dimg_eval(dimg)
22
22
  @_dimg << dimg
23
23
  end
24
24
  end
25
25
 
26
26
  def dimg_group(&blk)
27
27
  Config::DimgGroup.new(project: project).tap do |dimg_group|
28
+ before_dimg_group_eval(dimg_group)
28
29
  dimg_group.instance_eval(&blk) if block_given?
29
- after_dimg_group_eval(dimg_group)
30
30
  @_dimg_group << dimg_group
31
31
  end
32
32
  end
@@ -37,16 +37,16 @@ module Dapp
37
37
 
38
38
  protected
39
39
 
40
- def after_dimg_eval(dimg)
41
- pass_to(dimg)
40
+ def before_dimg_eval(dimg)
41
+ pass_to_default(dimg)
42
42
  end
43
43
 
44
- def after_dimg_group_eval(dimg_group)
45
- pass_to(dimg_group)
44
+ def before_dimg_group_eval(dimg_group)
45
+ pass_to_default(dimg_group)
46
46
  end
47
47
 
48
- def pass_to(obj)
49
- obj.instance_variable_set(:@_dev_mode, obj.instance_variable_get(:@_dev_mode) || @_dev_mode)
48
+ def pass_to_default(obj)
49
+ obj.instance_variable_set(:@_dev_mode, @_dev_mode)
50
50
  end
51
51
  end
52
52
  end
@@ -9,26 +9,8 @@ module Dapp
9
9
  _clone
10
10
  end
11
11
 
12
- def merge(obj)
13
- cloned_obj = obj.clone
14
-
15
- instance_variables.each do |variable_name|
16
- next if (obj_value = cloned_obj.instance_variable_get(variable_name)).nil?
17
- value = instance_variable_get(variable_name)
18
-
19
- case obj_value
20
- when Directive::Base
21
- if value.nil?
22
- instance_variable_set(variable_name, obj_value)
23
- else
24
- value.send(:merge, obj_value)
25
- end
26
- when Array then instance_variable_set(variable_name, obj_value.concat(Array(value)))
27
- when Hash then instance_variable_set(variable_name, obj_value.merge(Hash(value)))
28
- else
29
- instance_variable_set(variable_name, value || obj_value)
30
- end
31
- end
12
+ def clone_to_artifact
13
+ clone
32
14
  end
33
15
  end
34
16
  end
@@ -66,6 +66,14 @@ module Dapp
66
66
  entrypoint: _entrypoint
67
67
  }
68
68
  end
69
+
70
+ protected
71
+
72
+ def clone_to_artifact
73
+ Artifact.new(project: project).tap do |docker|
74
+ docker.instance_variable_set('@_from', @_from)
75
+ end
76
+ end
69
77
  end
70
78
  end
71
79
  end
@@ -54,6 +54,10 @@ module Dapp
54
54
  def empty?
55
55
  (_before_install_command + _before_setup_command + _install_command + _setup_command).empty?
56
56
  end
57
+
58
+ def clone_to_artifact
59
+ _clone_to Artifact.new(project: project)
60
+ end
57
61
  end
58
62
  end
59
63
  end
@@ -8,7 +8,7 @@ module Dapp
8
8
  def list
9
9
  build_configs.each do |config|
10
10
  if config._name.nil?
11
- log_warning("Project '#{name}' with nameless dimg!")
11
+ log_warning('Dappfile has unnamed dimg!') if log_verbose?
12
12
  else
13
13
  puts config._name
14
14
  end
data/lib/dapp/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # Version
2
2
  module Dapp
3
- VERSION = '0.7.20'.freeze
3
+ VERSION = '0.7.21'.freeze
4
4
  BUILD_CACHE_VERSION = 6
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.20
4
+ version: 0.7.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Stolyarov
@@ -438,7 +438,6 @@ files:
438
438
  - lib/dapp/config/base.rb
439
439
  - lib/dapp/config/dimg.rb
440
440
  - lib/dapp/config/dimg/instance_methods.rb
441
- - lib/dapp/config/dimg/merging.rb
442
441
  - lib/dapp/config/dimg/validation.rb
443
442
  - lib/dapp/config/dimg_group.rb
444
443
  - lib/dapp/config/dimg_group_base.rb
@@ -1,28 +0,0 @@
1
- module Dapp
2
- module Config
3
- class Dimg < Base
4
- # Merging
5
- module Merging
6
- protected
7
-
8
- [:mount, :artifact].each do |directive|
9
- define_method "merge_#{directive}" do |a, b|
10
- b.map { |a| a.send(:_clone) }.concat(Array(a))
11
- end
12
- end
13
-
14
- [:install_dependencies, :setup_dependencies, :artifact_dependencies].each do |directive|
15
- define_method "merge_#{directive}" do |a, b|
16
- b.dup.concat(Array(a))
17
- end
18
- end
19
-
20
- [:builder, :dev_mode].each do |directive|
21
- define_method "merge_#{directive}" do |a, b|
22
- a.nil? ? b : a
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end