orchparty 1.2.3 → 1.3.0

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
  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