dry-stack 0.1.56 → 0.1.58

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: f703dca5d6c72d78f7634b294ba41b739f19b5ee87c0177301ce0d8fc98e7148
4
- data.tar.gz: 7f70554b5b5b421926ce36dc75e1fec8086d98a2df2f51c9b8763441ad869057
3
+ metadata.gz: 55e705e011ccdd04e4d6cdcbf6f1b2603f0a066aff0e4a2be2583ee1020228c7
4
+ data.tar.gz: cbdf097acee8792275a8f61c6886776ac646ccd8273213b941a7b452a8e59c8e
5
5
  SHA512:
6
- metadata.gz: f8f8588139024f0a15c9ac97b103a545a5d0d997d7e6af7b4db07f9574bc242c25c9a2f4a3ff8caf0c6a4b01a4d7e70910a7eb59f6a561edc735ed9297850fd6
7
- data.tar.gz: 37e9151d6f369f35eda3286c418758292c515526106c3c3e04b27c5e391ebc5908482675a0b9a80fe20db7bd6968f5e4e5566bf2b27b1304357f218924def989
6
+ metadata.gz: 5e2de4565d013a07a0ee3dab166137de847c6ac836927f8e638ae4a2d1831601cc730febe907360e9d81c216ecf59373da69d8867dd648b6091c563ec64bcb19
7
+ data.tar.gz: 9619e3a2696f14a461dac50ca12e8afbb2be62e94f686933b9aedf5bb883cbbeab28e56b5318f1fa00c2cbbf88b4f558dccc2fd586d577e786ad3bfd3e7ce0d7
@@ -17,6 +17,8 @@ module Dry
17
17
  EMPTY_HASH = :empty_hash
18
18
  DEFAULT_INIT_SERVICE = true # add "init: true" option
19
19
 
20
+ def ENV! = ENV.method(:fetch)
21
+
20
22
  class ::Hash
21
23
  def deep_merge!(second)
22
24
  merger = proc { |_, v1, v2|
@@ -101,6 +103,7 @@ module Dry
101
103
  attr_accessor :name, :options, :description, :configuration
102
104
 
103
105
  def Stack(...) = Dry::Stack(...)
106
+ def ENV! = ENV.method(:fetch)
104
107
 
105
108
  # def self.new(*args, &block)
106
109
  # super
@@ -415,18 +418,31 @@ module Dry
415
418
  (@after_blocks ||=[]) << block
416
419
  end
417
420
 
421
+ def normalize_service_hook_args(name, opts)
422
+ if name.is_a?(Hash) && opts.empty?
423
+ opts = name
424
+ name = nil
425
+ end
426
+
427
+ opts = opts.dup
428
+ except = [opts.delete(:except)].flatten.compact
429
+ [[name].flatten.compact, opts, except]
430
+ end
431
+
418
432
  def BeforeService(name = nil, opts = {}, &block)
419
- (@before_blocks ||=[]).push names: [name].flatten.compact, except: opts[:except],
433
+ names, opts, except = normalize_service_hook_args(name, opts)
434
+ (@before_blocks ||=[]).push names:, except:,
420
435
  block: ->(s_name) {
421
436
  _ServiceImplementation s_name, opts, &block
422
437
  }
423
438
  end
424
439
 
425
440
  def AfterService(name = nil, opts = {}, &block)
441
+ names, opts, except = normalize_service_hook_args(name, opts)
426
442
  After do
427
- names = [name || @services.keys].flatten
428
- names -= [opts[:except]].flatten if opts.key? :except
429
- names.each do |s_name|
443
+ hook_names = names.empty? ? @services.keys : names
444
+ hook_names -= except
445
+ hook_names.each do |s_name|
430
446
  _ServiceImplementation s_name, opts, &block
431
447
  end
432
448
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.1.56'
3
+ VERSION = '0.1.58'
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.56
4
+ version: 0.1.58
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-12 00:00:00.000000000 Z
11
+ date: 2026-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake