orchparty 1.2.3 → 1.3.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: ac78e884fa172964ef9faa589250a9a84144b05b2cf59020a97a496d0d34cb07
4
- data.tar.gz: 0a52fc9c1cd9705faa1220bd6c994d3ea98cf95b363d138db8ede2487d4736f9
3
+ metadata.gz: 95212b8fd49f250ddfdc2775c5b68a073b82f870f4ab3258e1bef55903b72d5c
4
+ data.tar.gz: f3735dde2cb6735877a56cb38e5a794737e05d36c87bd15b5640c18b41f55885
5
5
  SHA512:
6
- metadata.gz: a251302607e58260e1b571c0670b1b89ad387fe2ba4e2ed7bbbb2e56d8cc657762ec565929cad89858b4ed0f2317edaf4066b5560e43c32ded95dd615fa0032a
7
- data.tar.gz: c20d1750ed9a972fc07543658e747597db74313784b9e7fcf64489ed891f793adec6a5605cd799820257121de9bb8ba86503d4a8caeda733d7df38b37dbe48ea
6
+ metadata.gz: 753c03352a0349947d80f6ac4ed0feb7b8bc0ccde1ca23a7287400d3a05dc5b6cb94a1d24b263eab94b22f70021300dde16b76673723d42682b5a1dd46c651b8
7
+ data.tar.gz: cb6930b9f0bf3254a06d8bc0effb46ae0a840b76554631fbbec14c1d59ea586ed9eb57aa73b4ad5d0dab13862cf1e937b89b2a25ed9eb97d9854d165cc94b657
@@ -21,6 +21,14 @@ module Orchparty
21
21
  builder.instance_eval(&block)
22
22
  builder._build
23
23
  end
24
+
25
+ def assign_or_merge(node, key, value)
26
+ if node[key]
27
+ node[key] = node[key].deep_merge_concat(value)
28
+ else
29
+ node[key] = value
30
+ end
31
+ end
24
32
  end
25
33
 
26
34
  class RootBuilder < Builder
@@ -175,9 +183,9 @@ module Orchparty
175
183
 
176
184
  def method_missing(name, *values, &block)
177
185
  if block_given?
178
- @node[name] = HashBuilder.build(block)
186
+ assign_or_merge(@node, name, HashBuilder.build(block))
179
187
  else
180
- @node[name] = values.first
188
+ assign_or_merge(@node, name, values.first)
181
189
  end
182
190
  end
183
191
 
@@ -17,8 +17,7 @@ module Orchparty
17
17
  application.services = application.services.transform_values! do |service|
18
18
  current = AST.service
19
19
  service.delete(:_mix).each do |mix|
20
- mixin = transform_mixin(resolve_mixin(mix, application, ast), application, ast)
21
- current = current.deep_merge_concat(mixin)
20
+ current = current.deep_merge_concat(resolve_mixin(mix, application, ast))
22
21
  end
23
22
  current.deep_merge_concat(service)
24
23
  end
@@ -26,12 +25,13 @@ module Orchparty
26
25
  end
27
26
 
28
27
  def resolve_mixin(mix, application, ast)
29
- if mix.include? "."
28
+ mixin = if mix.include? "."
30
29
  mixin_name, mixin_service_name = mix.split(".")
31
30
  ast._mixins[mixin_name]._mixins[mixin_service_name]
32
31
  else
33
32
  application._mixins[mix]
34
33
  end
34
+ transform_mixin(mixin, application, ast)
35
35
  end
36
36
 
37
37
  def transform_mixin(mixin, application, ast)
@@ -1,3 +1,3 @@
1
1
  module Orchparty
2
- VERSION = "1.2.3"
2
+ VERSION = "1.3.0"
3
3
  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: 1.2.3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jannis Huebl
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-18 00:00:00.000000000 Z
11
+ date: 2018-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  version: '0'
144
144
  requirements: []
145
145
  rubyforge_project:
146
- rubygems_version: 2.7.4
146
+ rubygems_version: 2.7.6
147
147
  signing_key:
148
148
  specification_version: 4
149
149
  summary: Write your orchestration configuration with a Ruby DSL that allows you to