dry-stack 0.1.26 → 0.1.27

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f4c014e08d5156845c9dc3c0884ab04fe72f0f75eaffe03415a0d24be6e4b2a
4
- data.tar.gz: c2faae7a7822c71d4e97590b0c7eec7abec5e5f32fb3cbd3baaa31534a302e96
3
+ metadata.gz: 6cc31d2b83307688e1d43bc7b204f641cc03c3b81e5b51edad67b1c59ecf88b9
4
+ data.tar.gz: '04284bddd3f1e10b39ae1cfc113953c9cc52aa20c00b06fd24e6cf34fe29ab59'
5
5
  SHA512:
6
- metadata.gz: 48df74bbb2801e09b50a40d5f9a771f0da561b1e617d3ac30709ad5de97ce2b59a31b6f49d6991cc0502df3ee3e70f858a85e1d7bf577083fa0c2233c143b9bc
7
- data.tar.gz: ceed8407e46f9142d772873813cbeee78869f0f2bf305815e319a03ebabd2e10b6b26d1821e8f129c8043dbb1f674ef6f26e636e6bf1b9d9c2af0bbd1f78172f
6
+ metadata.gz: 1f4e9f33b0dc3a2a192f2f85a3cba5a390b0c0c2197a057be65ed5819f107f6958a2be9f88efbc39ee8a1b357e05f45447912c56fcaefaac023e5259a49183b8
7
+ data.tar.gz: 8ef6dafd0c4645afea6341a753554dfb3a747727d8e8d866aada49b971be9b54b31bc6f7a30ae553397d24d0e78d77575c0666455d16e05938bc1aa218906ad8
@@ -270,11 +270,23 @@ module Dry
270
270
  service[:deploy][:labels] = service[:deploy][:labels].map{ env_sub[_1] }
271
271
  service[:environment].transform_values!{ _1.is_a?(String) ? (env_sub[_1]) : _1 }
272
272
 
273
- pp_i = @publish_ports[name]&.reject { _1.class == String }
273
+ pp_h = @publish_ports[name]&.select { _1.class == Hash }
274
+ pp_i = @publish_ports[name]&.select { _1.class == Integer }
274
275
  pp_s = @publish_ports[name]&.select { _1.class == String }
275
276
  service[:ports] = pp_i&.zip(service[:ports] || pp_i)&.map { _1.join ':' }
276
277
  service[:ports] = (service[:ports] || []) + pp_s unless pp_s.nil?
277
278
 
279
+ if pp_h&.any?
280
+ service[:ports] = service[:ports].map { |s|
281
+ if s.class == String
282
+ published, target = s.split(':').map(&:to_i)
283
+ { published:, target:, protocol: 'tcp', mode: 'ingress'}
284
+ else
285
+ s
286
+ end
287
+ } + pp_h
288
+ end
289
+
278
290
  service[:logging] ||= @logging[name.to_sym]
279
291
 
280
292
  service[:volumes]&.map!&.with_index do |volume, index|
@@ -391,7 +403,7 @@ module Dry
391
403
  end
392
404
 
393
405
  def PublishPorts(ports)
394
- @publish_ports.merge! ports.to_h { |k, v| [k,[v].flatten] }
406
+ @publish_ports.merge! ports.to_h { |k, v| [k,@publish_ports[k].to_a + [v].flatten] }
395
407
  end
396
408
 
397
409
  def Service(name, opts = {}, &block)
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.1.26'
3
+ VERSION = '0.1.27'
4
4
  end
5
5
  end
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.26
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-29 00:00:00.000000000 Z
11
+ date: 2025-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake