dry-system 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e61a3eb29bf6a29ebbb6a435f82733d10b5ea35cbf2cfa623e1d1d7d7b21f3df
4
- data.tar.gz: f9e307b866439b40542e4f8d28c9e6b45d9b2143271820c1a97f2724dac6827c
3
+ metadata.gz: 73c4548cedcd9da37980d70bf114fca9879738c1274789da138c8e43301db4db
4
+ data.tar.gz: 2c7cc8974efaaea1e998a15ea6c91cc0e6af352ec6ccce530abca9e83356203f
5
5
  SHA512:
6
- metadata.gz: 00073b13cc58e6de06cb7c3930e7cfa08af337fa6b26245da37598e7490406d803dcfca583ce6891007d5b54889da51a9bd3d19a08ed805e1abe53d4dc211cc9
7
- data.tar.gz: 19b88a8e1dc3b1d7af856fb1286f7cb96254f389c293a1665c7b8a8da144c099b685a14db53e99e0df403dd1fe0a505c6e560d90ed43e0503c6e5214650cfee6
6
+ metadata.gz: daeef02f9d5c2de8a2e66edc4474cb4ee56d0c1a0813aa967caeacb1d7cc9e0fc287667cdbb4514934599432c3ca9fa016893341dacb79fd3f56ca5b3038a1d3
7
+ data.tar.gz: '0983d69ebea6f6a4f9c653ad850aee8f5b0f5215431b3d4aa2e535b10b11a9aebb68f5305939de6e67fe03bcf8f48ba0830591b116c7ece9411f525e33277f05'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 1.2.0 2025-01-07
4
+
5
+
6
+ ### Added
7
+
8
+ - Option to skip eager loading during finalize with `eager_load: false` (via #276) (@cllns)
9
+
10
+ ### Changed
11
+
12
+ - Update required Ruby version to 3.1 (@flash-gordon)
13
+
14
+ [Compare v1.1.1...v1.2.0](https://github.com/dry-rb/dry-system/compare/v1.1.1...v1.2.0)
15
+
3
16
  ## 1.1.1 2024-11-03
4
17
 
5
18
 
data/README.md CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  This library officially supports the following Ruby versions:
17
17
 
18
- * MRI `>= 3.0`
18
+ * MRI `>= 3.1`
19
19
  * jruby `>= 9.4` (not tested on CI)
20
20
 
21
21
  ## License
data/dry-system.gemspec CHANGED
@@ -21,20 +21,17 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = []
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
- spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-system/blob/main/CHANGELOG.md"
26
- spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-system"
27
- spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-system/issues"
24
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
+ spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-system/blob/main/CHANGELOG.md"
26
+ spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-system"
27
+ spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-system/issues"
28
+ spec.metadata["rubygems_mfa_required"] = "true"
28
29
 
29
- spec.required_ruby_version = ">= 3.0"
30
+ spec.required_ruby_version = ">= 3.1"
30
31
 
31
32
  # to update dependencies edit project.yml
32
- spec.add_runtime_dependency "dry-auto_inject", "~> 1.0"
33
- spec.add_runtime_dependency "dry-configurable", "~> 1.0"
34
- spec.add_runtime_dependency "dry-core", "~> 1.0"
35
- spec.add_runtime_dependency "dry-inflector", "~> 1.0"
36
-
37
- spec.add_development_dependency "bundler"
38
- spec.add_development_dependency "rake"
39
- spec.add_development_dependency "rspec"
33
+ spec.add_dependency "dry-auto_inject", "~> 1.1"
34
+ spec.add_dependency "dry-configurable", "~> 1.3"
35
+ spec.add_dependency "dry-core", "~> 1.1"
36
+ spec.add_dependency "dry-inflector", "~> 1.1"
40
37
  end
@@ -60,10 +60,9 @@ module Dry
60
60
  #
61
61
  # @return [Object] component's class instance
62
62
  # @api public
63
- def instance(*args)
64
- options[:instance]&.call(self, *args) || loader.call(self, *args)
63
+ def instance(*args, **kwargs)
64
+ options[:instance]&.call(self, *args, **kwargs) || loader.call(self, *args, **kwargs)
65
65
  end
66
- ruby2_keywords(:instance) if respond_to?(:ruby2_keywords, true)
67
66
 
68
67
  # Returns the component's unique key
69
68
  #
@@ -76,13 +76,13 @@ module Dry
76
76
 
77
77
  def files(namespace)
78
78
  if namespace.path?
79
- Dir[File.join(full_path, namespace.path, "**", RB_GLOB)].sort
79
+ ::Dir[::File.join(full_path, namespace.path, "**", RB_GLOB)]
80
80
  else
81
81
  non_root_paths = config.namespaces.to_a.reject(&:root?).map(&:path)
82
82
 
83
- Dir[File.join(full_path, "**", RB_GLOB)].reject { |file_path|
83
+ ::Dir[::File.join(full_path, "**", RB_GLOB)].reject { |file_path|
84
84
  Pathname(file_path).relative_path_from(full_path).to_s.start_with?(*non_root_paths)
85
- }.sort
85
+ }
86
86
  end
87
87
  end
88
88
 
@@ -155,9 +155,9 @@ module Dry
155
155
  }
156
156
  end
157
157
 
158
- def method_missing(name, *args, &block)
158
+ def method_missing(name, ...)
159
159
  if config.respond_to?(name)
160
- config.public_send(name, *args, &block)
160
+ config.public_send(name, ...)
161
161
  else
162
162
  super
163
163
  end
@@ -7,7 +7,7 @@ module Dry
7
7
  module Config
8
8
  # @api public
9
9
  class ComponentDir
10
- include Dry::Configurable
10
+ include ::Dry::Configurable
11
11
 
12
12
  # @!group Settings
13
13
 
@@ -211,9 +211,9 @@ module Dry
211
211
 
212
212
  private
213
213
 
214
- def method_missing(name, *args, &block)
214
+ def method_missing(name, ...)
215
215
  if config.respond_to?(name)
216
- config.public_send(name, *args, &block)
216
+ config.public_send(name, ...)
217
217
  else
218
218
  super
219
219
  end
@@ -110,7 +110,7 @@ module Dry
110
110
 
111
111
  # @api private
112
112
  def initialize_copy(source)
113
- @dirs = source.dirs.map { |path, dir| [path, dir.dup] }.to_h
113
+ @dirs = source.dirs.to_h { |path, dir| [path, dir.dup] }
114
114
  @defaults = source.defaults.dup
115
115
  end
116
116
 
@@ -221,8 +221,8 @@ module Dry
221
221
  # @yieldparam dir [ComponentDir] the yielded component dir
222
222
  #
223
223
  # @api public
224
- def each(&block)
225
- to_a.each(&block)
224
+ def each(&)
225
+ to_a.each(&)
226
226
  end
227
227
 
228
228
  protected
@@ -272,9 +272,9 @@ module Dry
272
272
  end
273
273
  end
274
274
 
275
- def method_missing(name, *args, &block)
275
+ def method_missing(name, ...)
276
276
  if defaults.respond_to?(name)
277
- defaults.public_send(name, *args, &block)
277
+ defaults.public_send(name, ...)
278
278
  else
279
279
  super
280
280
  end
@@ -187,8 +187,8 @@ module Dry
187
187
  # @yieldparam namespace [Namespace] the yielded namespace
188
188
  #
189
189
  # @api public
190
- def each(&block)
191
- to_a.each(&block)
190
+ def each(&)
191
+ to_a.each(&)
192
192
  end
193
193
  end
194
194
  end
@@ -103,8 +103,8 @@ module Dry
103
103
  # @see after
104
104
  #
105
105
  # @api public
106
- def configure(finalize_config: true, &block)
107
- super(&block)
106
+ def configure(finalize_config: true, &)
107
+ super(&)
108
108
  configured!(finalize_config: finalize_config)
109
109
  end
110
110
 
@@ -314,23 +314,23 @@ module Dry
314
314
  # @return [self] frozen container
315
315
  #
316
316
  # @api public
317
- def finalize!(freeze: true, &block)
317
+ def finalize!(freeze: true, eager_load: true, &)
318
318
  return self if finalized?
319
319
 
320
320
  configured!
321
321
 
322
- hooks[:before_finalize].each { |hook| instance_eval(&hook) }
323
- yield(self) if block
322
+ run_hooks(:finalize) do
323
+ yield(self) if block_given?
324
324
 
325
- providers.finalize!
326
- auto_registrar.finalize!
327
- manifest_registrar.finalize!
328
- importer.finalize!
325
+ [providers, auto_registrar, manifest_registrar, importer].each(&:finalize!)
329
326
 
330
- @__finalized__ = true
327
+ keys.each { resolve(_1) } if eager_load
328
+
329
+ @__finalized__ = true
330
+
331
+ self.freeze if freeze
332
+ end
331
333
 
332
- self.freeze if freeze
333
- hooks[:after_finalize].each { |hook| instance_eval(&hook) }
334
334
  self
335
335
  end
336
336
 
@@ -462,7 +462,7 @@ module Dry
462
462
  # @api public
463
463
  def require_from_root(*paths)
464
464
  paths.flat_map { |path|
465
- path.to_s.include?("*") ? ::Dir[root.join(path)].sort : root.join(path)
465
+ path.to_s.include?("*") ? ::Dir[root.join(path)] : root.join(path)
466
466
  }.each { |path|
467
467
  Kernel.require path.to_s
468
468
  }
@@ -622,8 +622,8 @@ module Dry
622
622
  load_local_component(component)
623
623
  elsif manifest_registrar.file_exists?(component)
624
624
  manifest_registrar.(component)
625
- elsif importer.namespace?(component.identifier.root_key)
626
- load_imported_component(component.identifier, namespace: component.identifier.root_key)
625
+ elsif importer.namespace?(component.root_key)
626
+ load_imported_component(component.identifier, namespace: component.root_key)
627
627
  elsif importer.namespace?(nil)
628
628
  load_imported_component(component.identifier, namespace: nil)
629
629
  end
@@ -659,6 +659,12 @@ module Dry
659
659
  end
660
660
  } || IndirectComponent.new(Identifier.new(key))
661
661
  end
662
+
663
+ def run_hooks(event)
664
+ hooks[:"before_#{event}"].each { instance_eval(&_1) }
665
+ yield
666
+ hooks[:"after_#{event}"].each { instance_eval(&_1) }
667
+ end
662
668
  end
663
669
 
664
670
  # Default hooks
@@ -125,7 +125,7 @@ module Dry
125
125
  end
126
126
  end
127
127
 
128
- super message.join("\n")
128
+ super(message.join("\n"))
129
129
  end
130
130
  end
131
131
  end
@@ -43,18 +43,17 @@ module Dry
43
43
  # @return [Object]
44
44
  #
45
45
  # @api public
46
- def call(component, *args)
46
+ def call(component, *args, **kwargs)
47
47
  require!(component)
48
48
 
49
49
  constant = self.constant(component)
50
50
 
51
51
  if singleton?(constant)
52
- constant.instance(*args)
52
+ constant.instance(*args, **kwargs)
53
53
  else
54
- constant.new(*args)
54
+ constant.new(*args, **kwargs)
55
55
  end
56
56
  end
57
- ruby2_keywords(:call) if respond_to?(:ruby2_keywords, true)
58
57
 
59
58
  # Returns the component's class constant
60
59
  #
@@ -26,7 +26,7 @@ module Dry
26
26
 
27
27
  # @api private
28
28
  def finalize!
29
- ::Dir[registrations_dir.join(RB_GLOB)].sort.each do |file|
29
+ ::Dir[registrations_dir.join(RB_GLOB)].each do |file|
30
30
  call(Identifier.new(File.basename(file, RB_EXT)))
31
31
  end
32
32
  end
@@ -38,7 +38,7 @@ module Dry
38
38
 
39
39
  # @api private
40
40
  def file_exists?(component)
41
- File.exist?(File.join(registrations_dir, "#{component.root_key}#{RB_EXT}"))
41
+ ::File.exist?(::File.join(registrations_dir, "#{component.root_key}#{RB_EXT}"))
42
42
  end
43
43
 
44
44
  private
@@ -6,10 +6,8 @@ module Dry
6
6
  module Bootsnap
7
7
  DEFAULT_OPTIONS = {
8
8
  load_path_cache: true,
9
- disable_trace: true,
10
9
  compile_cache_iseq: true,
11
- compile_cache_yaml: true,
12
- autoload_paths_cache: false
10
+ compile_cache_yaml: true
13
11
  }.freeze
14
12
 
15
13
  # @api private
@@ -32,12 +30,16 @@ module Dry
32
30
  def setup_bootsnap
33
31
  return unless bootsnap_available?
34
32
 
35
- ::Bootsnap.setup(config.bootsnap.merge(cache_dir: root.join("tmp/cache").to_s))
33
+ ::Bootsnap.setup(**config.bootsnap, cache_dir: root.join("tmp/cache").to_s)
36
34
  end
37
35
 
38
36
  # @api private
39
37
  def bootsnap_available?
40
- RUBY_ENGINE == "ruby" && RUBY_VERSION >= "2.3.0" && RUBY_VERSION < "3.1.0"
38
+ spec = Gem.loaded_specs["bootsnap"] or return false
39
+
40
+ RUBY_ENGINE == "ruby" &&
41
+ spec.match_platform(RUBY_PLATFORM) &&
42
+ spec.required_ruby_version.satisfied_by?(Gem::Version.new(RUBY_VERSION))
41
43
  end
42
44
  end
43
45
  end
@@ -20,7 +20,7 @@ module Dry
20
20
  target_class: klass
21
21
  )
22
22
 
23
- super(klass)
23
+ super
24
24
  end
25
25
  end
26
26
 
@@ -36,7 +36,7 @@ module Dry
36
36
  target_class: klass
37
37
  )
38
38
 
39
- super(klass)
39
+ super
40
40
  end
41
41
  end
42
42
 
@@ -51,7 +51,7 @@ module Dry
51
51
  target_class: klass
52
52
  )
53
53
 
54
- super(klass)
54
+ super
55
55
  end
56
56
  end
57
57
 
@@ -34,7 +34,7 @@ module Dry
34
34
  end
35
35
 
36
36
  # @api private
37
- def register(key, contents = nil, options = {}, &block)
37
+ def register(key, contents = nil, options = {}, &)
38
38
  super.tap do
39
39
  key = key.to_s
40
40
 
@@ -24,15 +24,15 @@ module Dry
24
24
  end
25
25
 
26
26
  # @api private
27
- def monitor(key, **options, &block)
27
+ def monitor(key, **options, &)
28
28
  notifications = self[:notifications]
29
29
 
30
30
  resolve(key).tap do |target|
31
31
  proxy = Proxy.for(target, **options, key: key)
32
32
 
33
- if block
33
+ if block_given?
34
34
  proxy.monitored_methods.each do |meth|
35
- notifications.subscribe(:monitoring, target: key, method: meth, &block)
35
+ notifications.subscribe(:monitoring, target: key, method: meth, &)
36
36
  end
37
37
  end
38
38
 
@@ -11,8 +11,8 @@ module Dry
11
11
  # @return [Plugins]
12
12
  #
13
13
  # @api public
14
- def self.register(name, plugin, &block)
15
- registry[name] = Plugin.new(name, plugin, &block)
14
+ def self.register(name, plugin, &)
15
+ registry[name] = Plugin.new(name, plugin, &)
16
16
  end
17
17
 
18
18
  # @api private
@@ -37,21 +37,21 @@ module Dry
37
37
  # @see Dry::System::Provider::SourceDSL
38
38
  #
39
39
  # @api private
40
- def for(name:, group: nil, superclass: nil, &block)
40
+ def for(name:, group: nil, superclass: nil, &)
41
41
  superclass ||= self
42
42
 
43
- Class.new(superclass) { |klass|
43
+ ::Class.new(superclass) { |klass|
44
44
  klass.source_name name
45
45
  klass.source_group group
46
46
 
47
47
  name_with_group = group ? "#{group}->#{name}" : name
48
- klass.instance_eval <<~RUBY, __FILE__, __LINE__ + 1
49
- def name
50
- "#{superclass.name}[#{name_with_group}]"
51
- end
48
+ klass.instance_eval(<<~RUBY, __FILE__, __LINE__ + 1)
49
+ def name # def name
50
+ "#{superclass.name}[#{name_with_group}]" # "CustomSource[custom]"
51
+ end # end
52
52
  RUBY
53
53
 
54
- SourceDSL.evaluate(klass, &block) if block
54
+ SourceDSL.evaluate(klass, &) if block_given?
55
55
  }
56
56
  end
57
57
 
@@ -125,12 +125,12 @@ module Dry
125
125
  def target = target_container
126
126
 
127
127
  # @api private
128
- def initialize(provider_container:, target_container:, &block)
128
+ def initialize(provider_container:, target_container:, &)
129
129
  super()
130
130
  @callbacks = {before: CALLBACK_MAP.dup, after: CALLBACK_MAP.dup}
131
131
  @provider_container = provider_container
132
132
  @target_container = target_container
133
- instance_exec(&block) if block
133
+ instance_exec(&) if block_given?
134
134
  end
135
135
 
136
136
  # Returns a string containing a human-readable representation of the provider.
@@ -263,7 +263,7 @@ module Dry
263
263
  end
264
264
 
265
265
  # @api private
266
- def method_missing(name, *args, &block)
266
+ def method_missing(name, *args, &)
267
267
  if container.key?(name)
268
268
  container[name]
269
269
  else
@@ -10,8 +10,8 @@ module Dry
10
10
  #
11
11
  # @api private
12
12
  class SourceDSL
13
- def self.evaluate(source_class, &block)
14
- new(source_class).instance_eval(&block)
13
+ def self.evaluate(source_class, &)
14
+ new(source_class).instance_eval(&)
15
15
  end
16
16
 
17
17
  attr_reader :source_class
@@ -24,23 +24,23 @@ module Dry
24
24
  source_class.setting(...)
25
25
  end
26
26
 
27
- def prepare(&block)
28
- source_class.define_method(:prepare, &block)
27
+ def prepare(&)
28
+ source_class.define_method(:prepare, &)
29
29
  end
30
30
 
31
- def start(&block)
32
- source_class.define_method(:start, &block)
31
+ def start(&)
32
+ source_class.define_method(:start, &)
33
33
  end
34
34
 
35
- def stop(&block)
36
- source_class.define_method(:stop, &block)
35
+ def stop(&)
36
+ source_class.define_method(:stop, &)
37
37
  end
38
38
 
39
39
  private
40
40
 
41
- def method_missing(name, *args, &block)
41
+ def method_missing(name, ...)
42
42
  if source_class.respond_to?(name)
43
- source_class.public_send(name, *args, &block)
43
+ source_class.public_send(name, ...)
44
44
  else
45
45
  super
46
46
  end
@@ -127,8 +127,8 @@ module Dry
127
127
  attr_reader :source
128
128
 
129
129
  # @api private
130
- # rubocop:disable Layout/LineLength, Style/KeywordParametersOrder
131
- def initialize(name:, namespace: nil, target_container:, source_class:, source_options: {}, &block)
130
+ # rubocop:disable Style/KeywordParametersOrder
131
+ def initialize(name:, namespace: nil, target_container:, source_class:, source_options: {}, &)
132
132
  @name = name
133
133
  @namespace = namespace
134
134
  @target_container = target_container
@@ -141,10 +141,10 @@ module Dry
141
141
  **source_options,
142
142
  provider_container: provider_container,
143
143
  target_container: target_container,
144
- &block
144
+ &
145
145
  )
146
146
  end
147
- # rubocop:enable Layout/LineLength, Style/KeywordParametersOrder
147
+ # rubocop:enable Style/KeywordParametersOrder
148
148
 
149
149
  # Runs the `prepare` lifecycle step.
150
150
  #
@@ -46,14 +46,14 @@ module Dry
46
46
 
47
47
  # @see Container.register_provider
48
48
  # @api private
49
- def register_provider(name, from: nil, source: nil, if: true, **provider_options, &block)
49
+ def register_provider(name, from: nil, source: nil, if: true, **provider_options, &)
50
50
  raise ProviderAlreadyRegisteredError, name if providers.key?(name)
51
51
 
52
52
  if from && source.is_a?(Class)
53
53
  raise ArgumentError, "You must supply a block when using a provider source"
54
54
  end
55
55
 
56
- if block && source.is_a?(Class)
56
+ if block_given? && source.is_a?(Class)
57
57
  raise ArgumentError, "You must supply only a `source:` option or a block, not both"
58
58
  end
59
59
 
@@ -66,14 +66,14 @@ module Dry
66
66
  source: source || name,
67
67
  group: from,
68
68
  options: provider_options,
69
- &block
69
+ &
70
70
  )
71
71
  else
72
72
  build_provider(
73
73
  name,
74
74
  source: source,
75
75
  options: provider_options,
76
- &block
76
+ &
77
77
  )
78
78
  end
79
79
 
@@ -126,10 +126,10 @@ module Dry
126
126
  # @api public
127
127
  def provider_files
128
128
  @provider_files ||= provider_paths.each_with_object([[], []]) { |path, (provider_files, loaded)| # rubocop:disable Layout/LineLength
129
- files = Dir["#{path}/#{RB_GLOB}"].sort
129
+ files = ::Dir["#{path}/#{RB_GLOB}"]
130
130
 
131
131
  files.each do |file|
132
- basename = File.basename(file)
132
+ basename = ::File.basename(file)
133
133
 
134
134
  unless loaded.include?(basename)
135
135
  provider_files << Pathname(file)
@@ -213,11 +213,11 @@ module Dry
213
213
  }
214
214
  end
215
215
 
216
- def build_provider(name, options:, source: nil, &block)
216
+ def build_provider(name, options:, source: nil, &)
217
217
  source_class = source || Provider::Source.for(
218
218
  name: name,
219
219
  superclass: provider_source_class,
220
- &block
220
+ &
221
221
  )
222
222
 
223
223
  source_options =
@@ -236,7 +236,7 @@ module Dry
236
236
  )
237
237
  end
238
238
 
239
- def build_provider_from_source(name, source:, group:, options:, &block)
239
+ def build_provider_from_source(name, source:, group:, options:, &)
240
240
  provider_source = System.provider_sources.resolve(name: source, group: group)
241
241
 
242
242
  source_options =
@@ -253,7 +253,7 @@ module Dry
253
253
  target_container: target_container,
254
254
  source_class: provider_source.source,
255
255
  source_options: source_options,
256
- &block
256
+ &
257
257
  )
258
258
  end
259
259
 
@@ -24,7 +24,7 @@ module Dry
24
24
  end
25
25
 
26
26
  def load_sources(path)
27
- Dir[File.join(path, "**/#{RB_GLOB}")].sort.each do |file|
27
+ ::Dir[::File.join(path, "**/#{RB_GLOB}")].each do |file|
28
28
  require file
29
29
  end
30
30
  end
@@ -36,11 +36,11 @@ module Dry
36
36
  )
37
37
  end
38
38
 
39
- def register_from_block(name:, group:, provider_options:, &block)
39
+ def register_from_block(name:, group:, provider_options:, &)
40
40
  register(
41
41
  name: name,
42
42
  group: group,
43
- source: Provider::Source.for(name: name, group: group, &block),
43
+ source: Provider::Source.for(name: name, group: group, &),
44
44
  provider_options: provider_options
45
45
  )
46
46
  end
@@ -55,9 +55,9 @@ module Dry
55
55
 
56
56
  private
57
57
 
58
- def method_missing(name, *args, &block)
58
+ def method_missing(name, ...)
59
59
  if config.respond_to?(name)
60
- config.public_send(name, *args, &block)
60
+ config.public_send(name, ...)
61
61
  else
62
62
  super
63
63
  end
@@ -11,8 +11,8 @@ module Dry
11
11
  # of the container
12
12
  #
13
13
  # @api private
14
- def finalize!(**, &block)
15
- super(freeze: false, &block)
14
+ def finalize!(**, &)
15
+ super(freeze: false, &)
16
16
  end
17
17
  end
18
18
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module System
5
- VERSION = "1.1.1"
5
+ VERSION = "1.2.0"
6
6
  end
7
7
  end
data/lib/dry/system.rb CHANGED
@@ -30,8 +30,8 @@ module Dry
30
30
  # Registers a provider source, which can be used as the basis for other providers
31
31
  #
32
32
  # @api public
33
- def self.register_provider_source(name, group:, source: nil, provider_options: {}, &block)
34
- if source && block
33
+ def self.register_provider_source(name, group:, source: nil, provider_options: {}, &)
34
+ if source && block_given?
35
35
  raise ArgumentError, "You must supply only a `source:` option or a block, not both"
36
36
  end
37
37
 
@@ -47,7 +47,7 @@ module Dry
47
47
  name: name,
48
48
  group: group,
49
49
  provider_options: provider_options,
50
- &block
50
+ &
51
51
  )
52
52
  end
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-03 00:00:00.000000000 Z
11
+ date: 2025-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-auto_inject
@@ -16,98 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dry-configurable
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '1.3'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dry-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '1.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: dry-inflector
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '1.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rake
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rspec
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
68
+ version: '1.1'
111
69
  description: Organize your code into reusable components
112
70
  email:
113
71
  - piotr.solnica@gmail.com
@@ -169,7 +127,8 @@ metadata:
169
127
  changelog_uri: https://github.com/dry-rb/dry-system/blob/main/CHANGELOG.md
170
128
  source_code_uri: https://github.com/dry-rb/dry-system
171
129
  bug_tracker_uri: https://github.com/dry-rb/dry-system/issues
172
- post_install_message:
130
+ rubygems_mfa_required: 'true'
131
+ post_install_message:
173
132
  rdoc_options: []
174
133
  require_paths:
175
134
  - lib
@@ -177,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
136
  requirements:
178
137
  - - ">="
179
138
  - !ruby/object:Gem::Version
180
- version: '3.0'
139
+ version: '3.1'
181
140
  required_rubygems_version: !ruby/object:Gem::Requirement
182
141
  requirements:
183
142
  - - ">="
@@ -185,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
144
  version: '0'
186
145
  requirements: []
187
146
  rubygems_version: 3.3.27
188
- signing_key:
147
+ signing_key:
189
148
  specification_version: 4
190
149
  summary: Organize your code into reusable components
191
150
  test_files: []