orchparty 2.0.0.rc2 → 2.0.2

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
- SHA1:
3
- metadata.gz: 6da1869574cdc30632755d3c697b0f67a6cf5c66
4
- data.tar.gz: b840711e9f9ecd544d0b3afb83360c35ecbe75a0
2
+ SHA256:
3
+ metadata.gz: '094942f103771b85c3ddb7268baecd6c4b70becc95c78650052ef3a35ce37db7'
4
+ data.tar.gz: 8d0bdaf761f6715801ecfce8663688e2cabad6e58c1584db9a2fd8c3d1154934
5
5
  SHA512:
6
- metadata.gz: c56f79dce8504a78a2848dde0754eb9ac3f7c2ebc1d5e6e70606fd26a010194d17e81fe89e4df40a550ce0a507d6076248a2ea1e66c2150fcbc8b87935257fd2
7
- data.tar.gz: a3f0f28d0e3a3ba2d58803d1f274bf5ea13aea28e3879d825a1c56c104861e2acf0c371d363ee7a356243a4f35a0b3dfae0fd73751b25b3d28ea034bfd1ff30f
6
+ metadata.gz: 68afad75c4294c80f6730835d554824679dd8151c0269abc35d8c0e8c4343ddb13f40d7d5575edd915d05dac7ceecbcbcf090acd0d5f44557d5d4c4fc95c7537
7
+ data.tar.gz: 1e527f6cccb2b8b352f6885a112113f14c0d526ec1393eae3ae75008aebbf4cb5382ca5c14bc5010d1c3a945ac8eeb98ef7ef9c99cd9fe4b825f16417f0451d1
@@ -73,6 +73,11 @@ module Orchparty
73
73
  self
74
74
  end
75
75
 
76
+ def variables(&block)
77
+ @mixin._variables = VariableBuilder.build(block)
78
+ self
79
+ end
80
+
76
81
  def mixin(name, &block)
77
82
  @mixin._mixins[name] = ServiceBuilder.build(name, block)
78
83
  end
@@ -2,7 +2,6 @@ require 'erb'
2
2
  require 'erubis'
3
3
  require 'open3'
4
4
  require 'ostruct'
5
- require 'byebug'
6
5
  require 'yaml'
7
6
  require 'tempfile'
8
7
  require 'active_support'
@@ -8,24 +8,27 @@ module Orchparty
8
8
 
9
9
  def transform(ast)
10
10
  ast.applications.each do |_, application|
11
+ app_variables = application._variables || {}
12
+ app_variables = app_variables.merge({application: application.merge(application._variables)})
11
13
  application.services = application.services.each do |_, service|
12
- resolve(application, service, service)
14
+ resolve(app_variables, service, service)
13
15
  end
14
16
  application.volumes = application.volumes.each do |_, volume|
15
- resolve(application, volume, nil) if volume
17
+ resolve(app_variables, volume, nil) if volume
16
18
  end
17
19
  end
18
20
  ast
19
21
  end
20
22
 
21
- def resolve(application, subject, service)
23
+ def resolve(app_variables, subject, service)
24
+ context = build_context(app_variables, service)
22
25
  subject.deep_transform_values! do |v|
23
26
  if v.respond_to?(:call)
24
- eval_value(build_context(application: application, service: service), v)
27
+ eval_value(context, v)
25
28
  elsif v.is_a? Array
26
29
  v.map do |v|
27
30
  if v.respond_to?(:call)
28
- eval_value(build_context(application: application, service: service), v)
31
+ eval_value(context, v)
29
32
  else
30
33
  v
31
34
  end
@@ -40,12 +43,10 @@ module Orchparty
40
43
  context.instance_exec(&value)
41
44
  end
42
45
 
43
- def build_context(application:, service:)
44
- variables = application._variables || {}
45
- variables = variables.merge({application: application.merge(application._variables)})
46
+ def build_context(variables, service)
46
47
  if service
47
48
  variables = variables.merge(service._variables)
48
- variables = variables.merge({service: service.merge(service._variables)})
49
+ variables[:service] = service.merge(service._variables)
49
50
  end
50
51
  context = Context.new(variables)
51
52
  context._force_variable_definition = @force_variable_definition
@@ -1,3 +1,3 @@
1
1
  module Orchparty
2
- VERSION = "2.0.0.rc2"
2
+ VERSION = "2.0.2"
3
3
  end
data/orchparty.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency "gli", "~> 2.16.0"
29
29
  spec.add_dependency "activesupport"
30
30
  spec.add_dependency "erubis"
31
- spec.add_development_dependency "bundler", "~> 2.0.1"
32
- spec.add_development_dependency "rake", "~> 10.0"
31
+ spec.add_development_dependency "bundler"
32
+ spec.add_development_dependency "rake", "~> 12.0"
33
33
  spec.add_development_dependency "rspec", "~> 3.0"
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orchparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc2
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jannis Huebl
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-09 00:00:00.000000000 Z
11
+ date: 2022-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -70,30 +70,30 @@ dependencies:
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 2.0.1
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 2.0.1
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '10.0'
89
+ version: '12.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
96
+ version: '12.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -157,7 +157,7 @@ homepage: https://orch.party
157
157
  licenses:
158
158
  - LGPL-3.0
159
159
  metadata: {}
160
- post_install_message:
160
+ post_install_message:
161
161
  rdoc_options: []
162
162
  require_paths:
163
163
  - lib
@@ -168,13 +168,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
168
  version: '0'
169
169
  required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">"
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 1.3.1
173
+ version: '0'
174
174
  requirements: []
175
- rubyforge_project:
176
- rubygems_version: 2.6.14.4
177
- signing_key:
175
+ rubygems_version: 3.1.4
176
+ signing_key:
178
177
  specification_version: 4
179
178
  summary: Write your orchestration configuration with a Ruby DSL that allows you to
180
179
  have mixins, imports and variables.