orchparty 0.1.2 → 0.2.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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d243c872d405da539b21a6b53298be09acb55f4
|
4
|
+
data.tar.gz: 5f965f1e90ad73cb73c6f8bf3647188b36098a57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e34429154f83613c266f7697457464f007115787ad62fb624c521d2add5034b7a833d14f360396396862ca8ff1a9472f85acf4d185115c06bce0b42d967272a5
|
7
|
+
data.tar.gz: 079360c3b92c0be1a00ba205c217f395eebc81c32a67d0214208bf33d1f6a09f664d840fb216b55d59d59f32dfe47bf61a4157df6aaa60278cd310b1a0623b32
|
data/lib/orchparty/dsl_parser.rb
CHANGED
@@ -48,13 +48,21 @@ module Orchparty
|
|
48
48
|
class MixinBuilder
|
49
49
|
|
50
50
|
def initialize(name)
|
51
|
-
@mixin = AST::Mixin.new(name: name, services: {})
|
51
|
+
@mixin = AST::Mixin.new(name: name, services: {}, mixins: {})
|
52
52
|
end
|
53
53
|
|
54
54
|
def service(name, &block)
|
55
55
|
builder = ServiceBuilder.new(name)
|
56
56
|
builder.instance_eval(&block)
|
57
57
|
@mixin.services[name] = builder._build
|
58
|
+
@mixin.mixins[name] = builder._build
|
59
|
+
self
|
60
|
+
end
|
61
|
+
|
62
|
+
def mixin(name, &block)
|
63
|
+
builder = ServiceBuilder.new(name)
|
64
|
+
builder.instance_eval(&block)
|
65
|
+
@mixin.mixins[name] = builder._build
|
58
66
|
self
|
59
67
|
end
|
60
68
|
|
@@ -6,7 +6,7 @@ module Orchparty
|
|
6
6
|
ast.applications.each do |_, application|
|
7
7
|
application.services.transform_values! do |service|
|
8
8
|
if application.all.is_a?(Hash)
|
9
|
-
AST::Service.new(application.all.
|
9
|
+
AST::Service.new(application.all.deep_merge_concat(service))
|
10
10
|
else
|
11
11
|
service
|
12
12
|
end
|
@@ -30,7 +30,7 @@ module Orchparty
|
|
30
30
|
def resolve_mixin(mix, application, ast)
|
31
31
|
if mix.include? "."
|
32
32
|
mixin_name, mixin_service_name = mix.split(".")
|
33
|
-
ast.mixins[mixin_name].
|
33
|
+
ast.mixins[mixin_name].mixins[mixin_service_name]
|
34
34
|
else
|
35
35
|
application.mixins[mix]
|
36
36
|
end
|
@@ -30,6 +30,7 @@ module Orchparty
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def build_context(application:, service:)
|
33
|
+
application._variables ||= {}
|
33
34
|
variables = application._variables.merge(service._variables)
|
34
35
|
Context.new(variables.merge({application: application.merge(application._variables), service: service.merge(service._variables)}))
|
35
36
|
end
|
data/lib/orchparty/version.rb
CHANGED