dry-stack 0.0.29 → 0.0.30
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/stack.rb +17 -1
- 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: f963ad419ec4bc9369167b55795a7567276b68562cbcd6c78cb0be12f3f23f7e
|
4
|
+
data.tar.gz: 5c533b595b8d277d57371a6277ca6c53e01781569344b8f3959b65b60cc233b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c42cd31297f740d1c6ad10f90c3c1f2e17be118fd5e049b77a63acda3c8ef7b149e654983ad3a2a31425b011f0689aec2e389d0875b9d233764924506c47965d
|
7
|
+
data.tar.gz: 7d9d6459a9727727b24ae3515c5895ed34f6e348c5a7e9e9997daea04926d356f4c46e4c715bc00e263bb4976ae6e9c6a8b693f6534768ee44fd9e761a7c5877
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -12,6 +12,7 @@ module Dry
|
|
12
12
|
class ServiceFunction
|
13
13
|
def initialize(service, &); @service = service; instance_exec(&) end
|
14
14
|
def env(variables)= @service[:environment].merge! variables
|
15
|
+
def volume(opts)= ((@service[:volumes] ||= []) << opts).flatten!
|
15
16
|
def image(name)= @service[:image] = name
|
16
17
|
def ports(ports)= ((@service[:ports] ||= []) << ports).flatten!
|
17
18
|
def command(cmd)= @service[:command] = cmd
|
@@ -36,13 +37,21 @@ module Dry
|
|
36
37
|
@options = {}
|
37
38
|
@services = {}
|
38
39
|
@networks = {}
|
40
|
+
@volumes = {}
|
39
41
|
@publish_ports = {}
|
40
42
|
@ingress = {}
|
41
43
|
@deploy = {}
|
42
44
|
@labels = {}
|
43
45
|
end
|
44
46
|
|
45
|
-
def stringify(
|
47
|
+
def stringify(obj)
|
48
|
+
case
|
49
|
+
when obj.is_a?(Hash); obj.to_h { |k, v| [k.to_s, stringify(v)] }
|
50
|
+
when obj.is_a?(Array); obj.map { stringify(_1) }
|
51
|
+
else obj
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
46
55
|
def expand_hash(hash)
|
47
56
|
hash.select { _1.to_s =~ /\./ }.each do |k, v|
|
48
57
|
name = k.to_s.scan(/([^\.]*)\.(.*)/).flatten
|
@@ -72,6 +81,7 @@ module Dry
|
|
72
81
|
# Not allowed by docker stack deploy
|
73
82
|
version: @version,
|
74
83
|
services: YAML.load(@services.to_yaml),
|
84
|
+
volumes: YAML.load(@volumes.to_yaml),
|
75
85
|
networks: YAML.load(@networks.to_yaml),
|
76
86
|
}
|
77
87
|
|
@@ -179,6 +189,12 @@ module Dry
|
|
179
189
|
@networks[name].merge! opts
|
180
190
|
yield if block_given?
|
181
191
|
end
|
192
|
+
|
193
|
+
def Volume(name, opts = {})
|
194
|
+
@volumes[name] ||= {}
|
195
|
+
@volumes[name].merge! opts
|
196
|
+
yield if block_given?
|
197
|
+
end
|
182
198
|
end
|
183
199
|
end
|
184
200
|
|
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.0.
|
4
|
+
version: 0.0.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artyom B
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|