dry-stack 0.1.9 → 0.1.11
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/dry-stack/command_line.rb +0 -1
- data/lib/dry-stack/stack.rb +36 -11
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee77026f4dbbad4d93821303e117f494ca9ee63277d6ac75f9ee4bd4bf8f85f3
|
4
|
+
data.tar.gz: 115fd41b201a1483b0485639309e06f132f1247a7712f8c4a49ed26197ef3fa9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da8b13fa2ede538ad057ff761e5a66c9764e4c246581687bdafafbe6f7783fe036c3b1ff4580032a4fc103b4e2ff936a4001b62efa16b4be1342fb421ffb9969
|
7
|
+
data.tar.gz: 75fd19165a78349b402fd32c1a913c5b0697e833a448de9284e890657e7f9ea2c1aab94f281f877e6afcb51ada962c49eb485f88e0ea9941f265d2a94f0ff4fa
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -31,7 +31,7 @@ module Dry
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
def each_recursive(parent, each_
|
34
|
+
def each_recursive(parent, each_ = -> { _1.respond_to?(:each) ? _1.each : [] }, path = [], &blk)
|
35
35
|
each2_ = each_.is_a?(Array) ? ->(p) { (m = each_.find { p.respond_to? _1 }) ? p.send(m) : [] } : each_
|
36
36
|
(each2_[parent] || []).each do |(k,v)|
|
37
37
|
blk.call [path + [parent], k, v, path]
|
@@ -45,6 +45,10 @@ module Dry
|
|
45
45
|
def Stack(name = nil, configuration = nil, &)
|
46
46
|
Stack.last_stack = Stack.new name
|
47
47
|
Stack.last_stack.instance_exec(&) if block_given?
|
48
|
+
Stack.last_stack.instance_exec do
|
49
|
+
@services_blocks&.each { instance_exec &_1 }
|
50
|
+
@after_blocks&.each { instance_exec &_1 }
|
51
|
+
end
|
48
52
|
Stack.last_stack.apply_configuration configuration if configuration
|
49
53
|
end
|
50
54
|
|
@@ -147,7 +151,7 @@ module Dry
|
|
147
151
|
|
148
152
|
compose[:services].each do |name, service|
|
149
153
|
|
150
|
-
service[:image].gsub!(/:latest$/, '') # let docker swarm to create tag: :latest@sha265:0000...
|
154
|
+
service[:image].gsub!(/:latest$/, '') if service[:image] # let docker swarm to create tag: :latest@sha265:0000...
|
151
155
|
|
152
156
|
ingress = [@ingress[name], service[:ingress] || [] ].flatten.compact
|
153
157
|
|
@@ -332,13 +336,19 @@ module Dry
|
|
332
336
|
(@after_blocks ||=[]) << block
|
333
337
|
end
|
334
338
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
+
def BeforeService(name = nil, opts = {}, &block)
|
340
|
+
(@before_blocks ||=[]).push names: [name].flatten.compact, except: opts[:except],
|
341
|
+
block: ->(s_name) {
|
342
|
+
_ServiceImplementation s_name, opts, &block
|
343
|
+
}
|
344
|
+
end
|
345
|
+
|
346
|
+
def AfterService(name = nil, opts = {}, &block)
|
339
347
|
After do
|
340
|
-
@services.
|
341
|
-
|
348
|
+
names = [name || @services.keys].flatten
|
349
|
+
names -= [opts[:except]].flatten if opts.key? :except
|
350
|
+
names.each do |s_name|
|
351
|
+
_ServiceImplementation s_name, opts, &block
|
342
352
|
end
|
343
353
|
end
|
344
354
|
end
|
@@ -347,13 +357,28 @@ module Dry
|
|
347
357
|
@publish_ports.merge! ports.to_h { |k, v| [k,[v].flatten] }
|
348
358
|
end
|
349
359
|
|
350
|
-
def Service(name, opts = {}, &)
|
360
|
+
def Service(name, opts = {}, &block)
|
361
|
+
@services_blocks ||=[]
|
362
|
+
(@services_blocks ||=[]).push -> { _ServiceDeferred(name, opts, &block) }
|
363
|
+
end
|
364
|
+
|
365
|
+
def _ServiceDeferred(name, opts = {}, &block)
|
366
|
+
(@before_blocks || []).each do |before|
|
367
|
+
next unless before[:names].empty? || before[:names].include?(name)
|
368
|
+
next if before[:except]&.include? name
|
369
|
+
before[:block].call(name)
|
370
|
+
end
|
371
|
+
_ServiceImplementation(name, opts, &block)
|
372
|
+
end
|
373
|
+
|
374
|
+
def _ServiceImplementation(name, opts = {}, &)
|
375
|
+
opts = opts.dup
|
351
376
|
opts[:ports] = [opts[:ports]].flatten if opts.key? :ports
|
352
377
|
opts[:environment] = opts.delete(:env) if opts.key? :env
|
353
378
|
|
354
379
|
service = @services[name.to_sym] ||= {environment: {}, deploy: {labels: []}}
|
355
|
-
service.
|
356
|
-
ServiceFunction.new(service, &)
|
380
|
+
service.deep_merge! opts
|
381
|
+
ServiceFunction.new(service, &) if block_given?
|
357
382
|
end
|
358
383
|
|
359
384
|
def Description(string)
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-stack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artyom B
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|