alki 0.13.1 → 0.13.2
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 +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
|