alki 0.13.1 → 0.13.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/alki/assembly/instance_builder.rb +5 -5
- data/lib/alki/assembly/meta_list.rb +52 -0
- data/lib/alki/dsls/assembly_group.rb +13 -22
- data/lib/alki/executor.rb +1 -1
- data/lib/alki/override_builder.rb +3 -2
- data/lib/alki/version.rb +1 -1
- data/test/fixtures/example/config/handlers.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c45abd42f73d63b3416055e3d9b7083a987a933d
|
4
|
+
data.tar.gz: 9eb429b7597cb856e731f0eb46a6e3094db4464a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d15a85dc3d44267dafe127f76dd7c54faa594b163926ff2d8198afe3a2493297904d0d778b82bbd649ee0c47dea2f0aa18961c7ef3ad7be00f8ba66c846af854
|
7
|
+
data.tar.gz: 6bd49d1cd77f45018e376e059555f17b066d0c5be9c0cf40f6be653bb8518b737df5ef69811a673c0943aba3b1603bea42ae3ba84fce1d5127ade5c40ca8f3fd
|
@@ -14,7 +14,7 @@ module Alki
|
|
14
14
|
overrides = inject_assembly_instance overrides, instance_wrapper
|
15
15
|
|
16
16
|
executor.root = Types.build :assembly, assembly.root, overrides.root
|
17
|
-
executor.meta = IceNine.deep_freeze(assembly.meta
|
17
|
+
executor.meta = IceNine.deep_freeze(assembly.meta.dup.append! overrides.meta)
|
18
18
|
|
19
19
|
executor.call [:assembly_instance]
|
20
20
|
end
|
@@ -24,7 +24,7 @@ module Alki
|
|
24
24
|
def inject_assembly_instance(overrides,instance_wrapper)
|
25
25
|
root = overrides.root.dup
|
26
26
|
root.children = root.children.merge(assembly_instance: assembly_instance)
|
27
|
-
meta = overrides.meta
|
27
|
+
meta = wrap_assembly_instance(overrides.meta,instance_wrapper)
|
28
28
|
Overrides.new(root,meta)
|
29
29
|
end
|
30
30
|
|
@@ -32,13 +32,13 @@ module Alki
|
|
32
32
|
Types.build(:service,-> { root })
|
33
33
|
end
|
34
34
|
|
35
|
-
def wrap_assembly_instance(wrapper)
|
36
|
-
|
35
|
+
def wrap_assembly_instance(meta,wrapper)
|
36
|
+
meta.dup.add Meta::Overlay.new(
|
37
37
|
:value,
|
38
38
|
[:assembly_instance],
|
39
39
|
wrapper,
|
40
40
|
[]
|
41
|
-
)
|
41
|
+
)
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Alki
|
2
|
+
module Assembly
|
3
|
+
class MetaList
|
4
|
+
attr_reader :list
|
5
|
+
|
6
|
+
def initialize(list = [])
|
7
|
+
@list = list
|
8
|
+
end
|
9
|
+
|
10
|
+
def add(name=nil,meta)
|
11
|
+
path = name ? [name.to_sym] : []
|
12
|
+
@list << [path,meta]
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def prefix(*prefix)
|
17
|
+
@list.each do |(path,_)|
|
18
|
+
path.unshift *prefix
|
19
|
+
end
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def append(*prefix, meta_list)
|
24
|
+
append! *prefix, meta_list.dup
|
25
|
+
self
|
26
|
+
end
|
27
|
+
|
28
|
+
def append!(*prefix, meta_list)
|
29
|
+
@list.push *meta_list.prefix(*prefix).list
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def each
|
34
|
+
enum_for(:each) unless block_given?
|
35
|
+
@list.each do |(path,meta)|
|
36
|
+
yield path, meta
|
37
|
+
end
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
def to_a
|
42
|
+
@list.map do |(path,meta)|
|
43
|
+
[path.dup,meta]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def dup
|
48
|
+
self.class.new to_a
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'alki/override_builder'
|
2
2
|
require 'alki/support'
|
3
3
|
require 'alki/overlay_info'
|
4
|
+
require 'alki/assembly/meta_list'
|
4
5
|
|
5
6
|
Alki do
|
6
7
|
init do
|
7
8
|
ctx[:root] = build(:group,{})
|
8
|
-
ctx[:meta] =
|
9
|
+
ctx[:meta] = Alki::Assembly::MetaList.new
|
9
10
|
ctx[:addons] ||= []
|
10
11
|
ctx[:addons].each do |addon|
|
11
12
|
require_dsl addon
|
@@ -14,7 +15,7 @@ Alki do
|
|
14
15
|
|
15
16
|
helper :add do |name,elem|
|
16
17
|
if defined?(@tags) && @tags
|
17
|
-
ctx[:meta]
|
18
|
+
ctx[:meta].add name, build_meta(:tags,@tags)
|
18
19
|
@tags = nil
|
19
20
|
end
|
20
21
|
ctx[:root].children[name.to_sym] = elem
|
@@ -30,15 +31,12 @@ Alki do
|
|
30
31
|
end
|
31
32
|
|
32
33
|
helper :add_overlay do |type,target,overlay,args|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
args
|
40
|
-
)
|
41
|
-
]
|
34
|
+
ctx[:meta].add build_meta(
|
35
|
+
:overlay,
|
36
|
+
type, target.to_s.split('.').map(&:to_sym),
|
37
|
+
overlay.to_s.split('.').map(&:to_sym),
|
38
|
+
args
|
39
|
+
)
|
42
40
|
end
|
43
41
|
|
44
42
|
helper :prefix_meta do |*prefix,meta|
|
@@ -48,10 +46,6 @@ Alki do
|
|
48
46
|
meta
|
49
47
|
end
|
50
48
|
|
51
|
-
helper :update_meta do |*prefix,meta|
|
52
|
-
ctx[:meta].push *prefix_meta(*prefix,meta)
|
53
|
-
end
|
54
|
-
|
55
49
|
dsl_method :use do |addon_name|
|
56
50
|
addon = Alki.load addon_name
|
57
51
|
if addon.respond_to?(:alki_addon)
|
@@ -96,7 +90,7 @@ Alki do
|
|
96
90
|
dsl_method :group do |name,&blk|
|
97
91
|
grp = Alki::Dsls::AssemblyGroup.build(addons: ctx[:addons], &blk)
|
98
92
|
add name, grp[:root]
|
99
|
-
|
93
|
+
ctx[:meta].append! name, grp[:meta]
|
100
94
|
end
|
101
95
|
|
102
96
|
dsl_method :auto_group do |name,dir,callable,*args|
|
@@ -124,18 +118,15 @@ Alki do
|
|
124
118
|
end
|
125
119
|
grp = Alki.load(File.join(ctx[:prefix],name))
|
126
120
|
add group_name, grp.root
|
127
|
-
|
121
|
+
ctx[:meta].append group_name, grp.meta
|
128
122
|
end
|
129
123
|
|
130
124
|
dsl_method :mount do |name,pkg=name.to_s,**overrides,&blk|
|
131
125
|
klass = Alki.load pkg
|
132
|
-
|
133
|
-
[path.dup,type,info]
|
134
|
-
end
|
135
|
-
update_meta name, mounted_meta
|
126
|
+
ctx[:meta].append name, klass.meta
|
136
127
|
|
137
128
|
overrides = Alki::OverrideBuilder.build overrides, &blk
|
138
|
-
|
129
|
+
ctx[:meta].append! name, overrides.meta
|
139
130
|
|
140
131
|
add name, build(:assembly, klass.root, overrides.root)
|
141
132
|
end
|
data/lib/alki/executor.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'alki/dsl'
|
2
2
|
require 'alki/overrides'
|
3
3
|
require 'alki/assembly/types'
|
4
|
+
require 'alki/assembly/meta_list'
|
4
5
|
|
5
6
|
module Alki
|
6
7
|
module OverrideBuilder
|
@@ -10,9 +11,9 @@ module Alki
|
|
10
11
|
data = Alki::Dsl.build('alki/dsls/assembly_group',&blk)
|
11
12
|
Overrides.new data[:root], data[:meta]
|
12
13
|
elsif override_hash && !override_hash.empty?
|
13
|
-
Overrides.new create_override_group(override_hash),
|
14
|
+
Overrides.new create_override_group(override_hash), Alki::Assembly::MetaList.new
|
14
15
|
else
|
15
|
-
Overrides.new build_type(:group),
|
16
|
+
Overrides.new build_type(:group), Alki::Assembly::MetaList.new
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
data/lib/alki/version.rb
CHANGED
@@ -10,7 +10,6 @@ Alki do
|
|
10
10
|
|
11
11
|
num_handler :fizz, 3
|
12
12
|
|
13
|
-
|
14
13
|
group :handlers do
|
15
14
|
num_handler :buzz, 5
|
16
15
|
end
|
@@ -23,6 +22,7 @@ Alki do
|
|
23
22
|
num_handler 15, settings.fizzbuzz
|
24
23
|
end
|
25
24
|
|
25
|
+
tag :io
|
26
26
|
service :echo do
|
27
27
|
require 'example/echo_handler'
|
28
28
|
Example::EchoHandler.new output
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Edlefsen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: alki-dsl
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- lib/alki/assembly/instance_builder.rb
|
105
105
|
- lib/alki/assembly/meta/overlay.rb
|
106
106
|
- lib/alki/assembly/meta/tags.rb
|
107
|
+
- lib/alki/assembly/meta_list.rb
|
107
108
|
- lib/alki/assembly/type.rb
|
108
109
|
- lib/alki/assembly/types.rb
|
109
110
|
- lib/alki/assembly/types/assembly.rb
|