dapp 0.7.20 → 0.7.21

Sign up to get free protection for your applications and to get access to all the features.
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