dry-system 0.27.2 → 1.0.0.rc1

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: 57c6404ea452b7f7a1d698c6ea823c91f477a9e4373a60a01093d17ed9510c79
4
- data.tar.gz: 2c38004c1a8e4a478ea3da73ad500085f1cd9830630bdd0113f2f5842f422015
3
+ metadata.gz: c6f625944296b640e8b964f73c561bfe28fb16574bcbe716221b7f643e86d930
4
+ data.tar.gz: b0195e7bb3f0979962b1687d7473552e11d97647e4d8c97fe067c35a453df8eb
5
5
  SHA512:
6
- metadata.gz: 9fbe5fd3365f6f2b235c5320b69619839c35ee3ffbf673b8de4b81353db48be179ae7ed1175fe9fe014834ce15702c9da3732be4707ccca1a40ba9c6fd27cc3c
7
- data.tar.gz: '0837a36fd22fdcdbd6863ad2933ab6fa927d5355c5f34e9ea81a08c02866ffd11c55464fa0d696dbdfa809bc38b24aa16efd7a858bb80338d34de1d8250c9e78'
6
+ metadata.gz: 6607e793820ddb9c732e3c924725fcf4d0dbed7a88559a97f260435bfc7776055d14d529c9a00a3cfe39a4906187190195b45debd398f0127758eddc3093cc1d
7
+ data.tar.gz: fbc14360a133b341886b2279c1dd8a69ceea18f7fa9589e32f90acbbf83e5e72c492024868fc16824249b526b01f90cb0919963bd2f1a212588ca23711fd88dc
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 0.28.0 unreleased
4
+
5
+
6
+ ### Changed
7
+
8
+ - This version uses dry-core 1.0 and dry-configurable 1.0 (@solnic + @flash-gordon)
9
+
10
+ [Compare v0.27.2...v0.28.0](https://github.com/dry-rb/dry-system/compare/v0.27.2...v0.28.0)
11
+
12
+ ## 0.27.2 2022-10-17
13
+
14
+
15
+ ### Fixed
16
+
17
+ - Removed remaining manual require left-overs (@solnic)
18
+
19
+
20
+ [Compare v0.27.1...v0.27.2](https://github.com/dry-rb/dry-system/compare/v0.27.1...v0.27.2)
21
+
3
22
  ## 0.27.1 2022-10-15
4
23
 
5
24
 
data/dry-system.gemspec CHANGED
@@ -29,12 +29,10 @@ Gem::Specification.new do |spec|
29
29
  spec.required_ruby_version = ">= 2.7.0"
30
30
 
31
31
  # to update dependencies edit project.yml
32
- spec.add_runtime_dependency "zeitwerk", "~> 2.6"
33
- spec.add_runtime_dependency "dry-auto_inject", ">= 0.4.0"
34
- spec.add_runtime_dependency "dry-configurable", "~> 0.16", ">= 0.16.0"
35
- spec.add_runtime_dependency "dry-container", "~> 0.10", ">= 0.10.0"
36
- spec.add_runtime_dependency "dry-core", "~> 0.9", ">= 0.9.0"
37
- spec.add_runtime_dependency "dry-inflector", "~> 0.1", ">= 0.1.2"
32
+ spec.add_runtime_dependency "dry-auto_inject", "~> 1.0.0.rc1", "< 2"
33
+ spec.add_runtime_dependency "dry-configurable", "~> 1.0", "< 2"
34
+ spec.add_runtime_dependency "dry-core", "~> 1.0", "< 2"
35
+ spec.add_runtime_dependency "dry-inflector", "~> 1.0", "< 2"
38
36
 
39
37
  spec.add_development_dependency "bundler"
40
38
  spec.add_development_dependency "rake"
@@ -190,40 +190,6 @@ module Dry
190
190
  # @api public
191
191
  setting :add_to_load_path, default: true
192
192
 
193
- # @api public
194
- def default_namespace=(namespace)
195
- Dry::Core::Deprecations.announce(
196
- "Dry::System::Config::ComponentDir#default_namespace=",
197
- "Add a namespace instead: `dir.namespaces.add #{namespace.to_s.inspect}, key: nil`",
198
- tag: "dry-system",
199
- uplevel: 1
200
- )
201
-
202
- # We don't have the configured separator here, so the best we can do is guess
203
- # that it's a dot
204
- namespace_path = namespace.gsub(".", PATH_SEPARATOR)
205
-
206
- return if namespaces.namespaces[namespace_path]
207
-
208
- namespaces.add namespace_path, key: nil
209
- end
210
-
211
- # @api public
212
- def default_namespace
213
- Dry::Core::Deprecations.announce(
214
- "Dry::System::Config::ComponentDir#default_namespace",
215
- "Use namespaces instead, e.g. `dir.namespaces`",
216
- tag: "dry-system",
217
- uplevel: 1
218
- )
219
-
220
- ns_path = namespaces.to_a.reject(&:root?).first&.path
221
-
222
- # We don't have the configured separator here, so the best we can do is guess
223
- # that it's a dot
224
- ns_path&.gsub(PATH_SEPARATOR, ".")
225
- end
226
-
227
193
  # @!endgroup
228
194
 
229
195
  # Returns the component dir path, relative to the configured container root
@@ -44,19 +44,7 @@ module Dry
44
44
  # @return [Namespace, nil] the root namespace, if configured
45
45
  #
46
46
  # @api public
47
- def root(**options)
48
- if options.any?
49
- Dry::Core::Deprecations.announce(
50
- "Dry::System::Config::Namespaces#root (with arguments)",
51
- "Use `#add_root(key: nil, const: nil)` instead",
52
- tag: "dry-system",
53
- uplevel: 1
54
- )
55
-
56
- add_root(**options)
57
- return
58
- end
59
-
47
+ def root
60
48
  namespaces[Namespace::ROOT_PATH]
61
49
  end
62
50
 
@@ -4,7 +4,6 @@ require "pathname"
4
4
 
5
5
  require "dry/configurable"
6
6
  require "dry/auto_inject"
7
- require "dry/container"
8
7
  require "dry/inflector"
9
8
 
10
9
  module Dry
@@ -53,13 +52,12 @@ module Dry
53
52
  #
54
53
  # @api public
55
54
  class Container
56
- extend Dry::Container::Mixin
55
+ extend Dry::Core::Container::Mixin
57
56
  extend Dry::System::Plugins
58
57
 
59
58
  setting :name
60
59
  setting :root, default: Pathname.pwd.freeze, constructor: ->(path) { Pathname(path) }
61
60
  setting :provider_dirs, default: ["system/providers"]
62
- setting :bootable_dirs # Deprecated for provider_dirs, see .provider_paths below
63
61
  setting :registrations_dir, default: "system/registrations"
64
62
  setting :component_dirs, default: Config::ComponentDirs.new, cloneable: true
65
63
  setting :exports, reader: true
@@ -73,8 +71,6 @@ module Dry
73
71
  config.namespace_separator = KEY_SEPARATOR
74
72
 
75
73
  class << self
76
- extend Dry::Core::Deprecations["Dry::System::Container"]
77
-
78
74
  # @!method config
79
75
  # Returns the configuration for the container
80
76
  #
@@ -152,46 +148,35 @@ module Dry
152
148
  #
153
149
  # @example
154
150
  # # system/container.rb
151
+ # require "dry/system/container"
152
+ # require "logger"
153
+ #
155
154
  # class Core < Dry::System::Container
156
- # configure do |config|
157
- # config.root = Pathname("/path/to/app")
158
- # config.auto_register = %w(lib/apis lib/core)
159
- # end
155
+ # register("logger", Logger.new($stdout))
160
156
  # end
161
157
  #
162
158
  # # apps/my_app/system/container.rb
163
159
  # require 'system/container'
164
160
  #
165
161
  # class MyApp < Dry::System::Container
166
- # configure do |config|
167
- # config.root = Pathname("/path/to/app")
168
- # config.auto_register = %w(lib/apis lib/core)
169
- # end
170
- #
171
- # import core: Core
162
+ # import(from: Core, as: :core)
172
163
  # end
173
164
  #
174
- # @param other [Hash, Dry::Container::Namespace]
165
+ # MyApp.import(keys: ["logger"], from: Core, as: :core2)
166
+ #
167
+ # MyApp["core.logger"].info("Test")
168
+ # MyApp["core2.logger"].info("Test2")
169
+ #
170
+ # @param keys [Array<String>] Keys for the components to import
171
+ # @param from [Class] The container to import from
172
+ # @param as [Symbol] Namespace to use for the components of the imported container
173
+ #
174
+ # @raise [Dry::System::ContainerAlreadyFinalizedError] if the container has already
175
+ # been finalized
175
176
  #
176
177
  # @api public
177
- def import(keys: nil, from: Undefined, as: Undefined, **deprecated_import_hash)
178
- if deprecated_import_hash.any?
179
- Dry::Core::Deprecations.announce(
180
- "Dry::System::Container.import with {namespace => container} hash",
181
- "Use Dry::System::Container.import(from: container, as: namespace) instead",
182
- tag: "dry-system",
183
- uplevel: 1
184
- )
185
-
186
- deprecated_import_hash.each do |namespace, container|
187
- importer.register(container: container, namespace: namespace)
188
- end
189
- return self
190
- elsif from == Undefined || as == Undefined
191
- # These keyword arguments can become properly required in the params list once
192
- # we remove the deprecation shim above
193
- raise ArgumentError, "required keyword arguments: :from, :as"
194
- end
178
+ def import(from:, as:, keys: nil)
179
+ raise Dry::System::ContainerAlreadyFinalizedError if finalized?
195
180
 
196
181
  importer.register(container: from, namespace: as, keys: keys)
197
182
 
@@ -291,26 +276,6 @@ module Dry
291
276
 
292
277
  # rubocop:enable Layout/LineLength
293
278
 
294
- # @see .register_provider
295
- # @api public
296
- def boot(name, **opts, &block)
297
- Dry::Core::Deprecations.announce(
298
- "Dry::System::Container.boot",
299
- "Use `Dry::System::Container.register_provider` instead",
300
- tag: "dry-system",
301
- uplevel: 1
302
- )
303
-
304
- register_provider(
305
- name,
306
- namespace: opts[:namespace],
307
- from: opts[:from],
308
- source: opts[:key],
309
- &block
310
- )
311
- end
312
- deprecate :finalize, :boot
313
-
314
279
  # Return if a container was finalized
315
280
  #
316
281
  # @return [TrueClass, FalseClass]
@@ -403,7 +368,6 @@ module Dry
403
368
  providers.prepare(name)
404
369
  self
405
370
  end
406
- deprecate :init, :prepare
407
371
 
408
372
  # Stop a specific component but calls only `stop` lifecycle trigger
409
373
  #
@@ -563,7 +527,6 @@ module Dry
563
527
  def providers
564
528
  @providers ||= config.provider_registrar.new(self)
565
529
  end
566
- deprecate :booter, :providers
567
530
 
568
531
  # @api private
569
532
  def auto_registrar
@@ -2,7 +2,10 @@
2
2
 
3
3
  module Dry
4
4
  module System
5
- extend Dry::Core::Deprecations["dry-system"]
5
+ # Error raised when import is called on an already finalized container
6
+ #
7
+ # @api public
8
+ ContainerAlreadyFinalizedError = Class.new(StandardError)
6
9
 
7
10
  # Error raised when a component dir is added to configuration more than once
8
11
  #
@@ -43,8 +46,6 @@ module Dry
43
46
  super("Provider #{provider_name.inspect} has already been registered")
44
47
  end
45
48
  end
46
- DuplicatedComponentKeyError = ProviderAlreadyRegisteredError
47
- deprecate_constant :DuplicatedComponentKeyError
48
49
 
49
50
  # Error raised when a named provider could not be found
50
51
  #
@@ -54,8 +55,6 @@ module Dry
54
55
  super("Provider #{name.inspect} not found")
55
56
  end
56
57
  end
57
- InvalidComponentError = ProviderNotFoundError
58
- deprecate_constant :InvalidComponentError
59
58
 
60
59
  # Error raised when a named provider source could not be found
61
60
  #
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/container"
4
3
  require "dry/system/constants"
5
4
 
6
5
  module Dry
@@ -106,7 +105,7 @@ module Dry
106
105
  end
107
106
 
108
107
  def build_merge_container(other, keys)
109
- keys.each_with_object(Dry::Container.new) { |key, ic|
108
+ keys.each_with_object(Core::Container.new) { |key, ic|
110
109
  next unless other.key?(key)
111
110
 
112
111
  # Access the other container's items directly so that we can preserve all their
@@ -6,7 +6,7 @@ module Dry
6
6
  module DependencyGraph
7
7
  # @api private
8
8
  class Strategies
9
- extend Dry::Container::Mixin
9
+ extend Core::Container::Mixin
10
10
 
11
11
  # @api private
12
12
  class Kwargs < Dry::AutoInject::Strategies::Kwargs
@@ -12,7 +12,7 @@ module Dry
12
12
 
13
13
  # @api private
14
14
  def self.dependencies
15
- {"dry-monitor": "dry/monitor/notifications"}
15
+ {"dry-monitor": "dry/monitor"}
16
16
  end
17
17
 
18
18
  # @api private
@@ -37,11 +37,11 @@ module Dry
37
37
  # @see Dry::System::Provider::SourceDSL
38
38
  #
39
39
  # @api private
40
- def for(name:, group: nil, target_container:, &block) # rubocop:disable Style/KeywordParametersOrder
40
+ def for(name:, group: nil, &block)
41
41
  Class.new(self) { |klass|
42
42
  klass.source_name name
43
43
  klass.source_group group
44
- SourceDSL.evaluate(klass, target_container, &block) if block
44
+ SourceDSL.evaluate(klass, &block) if block
45
45
  }
46
46
  end
47
47
 
@@ -183,21 +183,6 @@ module Dry
183
183
  # @api public
184
184
  def stop; end
185
185
 
186
- def use(*provider_names)
187
- Dry::Core::Deprecations.announce(
188
- "Dry::System::Provider#use",
189
- "Use `target_container.start` instead, e.g. `target_container.start(:another_provider)`", # rubocop:disable Layout/LineLength
190
- tag: "dry-system",
191
- uplevel: 1
192
- )
193
-
194
- provider_names.each do |name|
195
- target_container.start(name)
196
- end
197
-
198
- self
199
- end
200
-
201
186
  # Registers a "before" callback for the given lifecycle step.
202
187
  #
203
188
  # The given block will be run before the lifecycle step method is run. The block
@@ -212,17 +197,6 @@ module Dry
212
197
  #
213
198
  # @api public
214
199
  def before(step_name, &block)
215
- if step_name.to_sym == :init
216
- Dry::Core::Deprecations.announce(
217
- "Dry::System::Provider before(:init) callback",
218
- "Use `before(:prepare)` callback instead",
219
- tag: "dry-system",
220
- uplevel: 1
221
- )
222
-
223
- step_name = :prepare
224
- end
225
-
226
200
  callbacks[:before][step_name] << block
227
201
  self
228
202
  end
@@ -241,17 +215,6 @@ module Dry
241
215
  #
242
216
  # @api public
243
217
  def after(step_name, &block)
244
- if step_name.to_sym == :init
245
- Dry::Core::Deprecations.announce(
246
- "Dry::System::Provider after(:init) callback",
247
- "Use `after(:prepare)` callback instead",
248
- tag: "dry-system",
249
- uplevel: 1
250
- )
251
-
252
- step_name = :prepare
253
- end
254
-
255
218
  callbacks[:after][step_name] << block
256
219
  self
257
220
  end
@@ -259,18 +222,7 @@ module Dry
259
222
  # @api private
260
223
  def run_callback(hook, step)
261
224
  callbacks[hook][step].each do |callback|
262
- if callback.parameters.any?
263
- Dry::Core::Deprecations.announce(
264
- "Dry::System::Provider::Source.before and .after callbacks with single block parameter", # rubocop:disable Layout/LineLength
265
- "Use `provider_container` (or `container` for short) inside your block instead",
266
- tag: "dry-system",
267
- uplevel: 1
268
- )
269
-
270
- instance_exec(provider_container, &callback)
271
- else
272
- instance_eval(&callback)
273
- end
225
+ instance_eval(&callback)
274
226
  end
275
227
  end
276
228
 
@@ -10,19 +10,8 @@ module Dry
10
10
  #
11
11
  # @api private
12
12
  class SourceDSL
13
- extend Dry::Core::Deprecations["Dry::System::Provider::SourceDSL"]
14
-
15
- def self.evaluate(source_class, target_container, &block)
16
- if block.parameters.any?
17
- Dry::Core::Deprecations.announce(
18
- "Dry::System.register_provider with single block parameter",
19
- "Use `target_container` (or `target` for short) inside your block instead",
20
- tag: "dry-system"
21
- )
22
- new(source_class).instance_exec(target_container, &block)
23
- else
24
- new(source_class).instance_eval(&block)
25
- end
13
+ def self.evaluate(source_class, &block)
14
+ new(source_class).instance_eval(&block)
26
15
  end
27
16
 
28
17
  attr_reader :source_class
@@ -35,35 +24,9 @@ module Dry
35
24
  source_class.setting(...)
36
25
  end
37
26
 
38
- # rubocop:disable Layout/LineLength
39
-
40
- def settings(&block)
41
- Dry::Core::Deprecations.announce(
42
- "Dry::System.register_provider with nested settings block",
43
- "Use individual top-level `setting` declarations instead (see dry-configurable docs for details)",
44
- tag: "dry-system",
45
- uplevel: 1
46
- )
47
-
48
- DeprecatedSettingsDSL.new(self).instance_eval(&block)
49
- end
50
-
51
- # rubocop:enable Layout/LineLength
52
-
53
- class DeprecatedSettingsDSL
54
- def initialize(base_dsl)
55
- @base_dsl = base_dsl
56
- end
57
-
58
- def key(name, type)
59
- @base_dsl.setting(name, constructor: type)
60
- end
61
- end
62
-
63
27
  def prepare(&block)
64
28
  source_class.define_method(:prepare, &block)
65
29
  end
66
- deprecate :init, :prepare
67
30
 
68
31
  def start(&block)
69
32
  source_class.define_method(:start, &block)
@@ -90,7 +90,7 @@ module Dry
90
90
  # later marged into the target container after the `prepare` and `start` lifecycle
91
91
  # steps.
92
92
  #
93
- # @return [Dry::Container]
93
+ # @return [Dry::Core::Container]
94
94
  #
95
95
  # @api public
96
96
  attr_reader :provider_container
@@ -206,7 +206,7 @@ module Dry
206
206
 
207
207
  # @api private
208
208
  def build_provider_container
209
- container = Dry::Container.new
209
+ container = Core::Container.new
210
210
 
211
211
  case namespace
212
212
  when String, Symbol
@@ -15,8 +15,6 @@ module Dry
15
15
  #
16
16
  # @api private
17
17
  class ProviderRegistrar
18
- extend Dry::Core::Deprecations["Dry::System::Container"]
19
-
20
18
  # @api private
21
19
  attr_reader :providers
22
20
 
@@ -138,7 +136,6 @@ module Dry
138
136
  end
139
137
  }.first
140
138
  end
141
- deprecate :boot_files, :provider_files
142
139
 
143
140
  # @api private
144
141
  def finalize!
@@ -184,24 +181,9 @@ module Dry
184
181
 
185
182
  private
186
183
 
187
- # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/LineLength
188
184
  # @api private
189
185
  def provider_paths
190
186
  provider_dirs = container.config.provider_dirs
191
- bootable_dirs = container.config.bootable_dirs || ["system/boot"]
192
-
193
- if container.config.provider_dirs == ["system/providers"] && \
194
- provider_dirs.none? { |d| container.root.join(d).exist? } && \
195
- bootable_dirs.any? { |d| container.root.join(d).exist? }
196
- Dry::Core::Deprecations.announce(
197
- "Dry::System::Container.config.bootable_dirs (defaulting to 'system/boot')",
198
- "Use `Dry::System::Container.config.provider_dirs` (defaulting to 'system/providers') instead",
199
- tag: "dry-system",
200
- uplevel: 2
201
- )
202
-
203
- provider_dirs = bootable_dirs
204
- end
205
187
 
206
188
  provider_dirs.map { |dir|
207
189
  dir = Pathname(dir)
@@ -213,14 +195,9 @@ module Dry
213
195
  end
214
196
  }
215
197
  end
216
- # rubocop:enable Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/LineLength
217
198
 
218
199
  def build_provider(name, namespace:, source: nil, &block)
219
- source_class = source || Provider::Source.for(
220
- name: name,
221
- target_container: container,
222
- &block
223
- )
200
+ source_class = source || Provider::Source.for(name: name, &block)
224
201
 
225
202
  Provider.new(
226
203
  name: name,
@@ -22,31 +22,19 @@ module Dry
22
22
  sources[key(name, group)] = source
23
23
  end
24
24
 
25
- def register_from_block(name:, group:, target_container:, &block)
25
+ def register_from_block(name:, group:, &block)
26
26
  register(
27
27
  name: name,
28
28
  group: group,
29
29
  source: Provider::Source.for(
30
30
  name: name,
31
31
  group: group,
32
- target_container: target_container,
33
32
  &block
34
33
  )
35
34
  )
36
35
  end
37
36
 
38
37
  def resolve(name:, group:)
39
- if group == :system
40
- Dry::Core::Deprecations.announce(
41
- "Providers using `from: :system`",
42
- "Use `from: :dry_system` instead",
43
- tag: "dry-system",
44
- uplevel: 1
45
- )
46
-
47
- group = :dry_system
48
- end
49
-
50
38
  sources[key(name, group)].tap { |source|
51
39
  unless source
52
40
  raise ProviderSourceNotFoundError.new(
@@ -33,13 +33,17 @@ module Dry
33
33
  new.tap do |settings_obj|
34
34
  errors = {}
35
35
 
36
- settings.to_a.each do |setting_name|
37
- value = loader[setting_name.to_s.upcase]
36
+ settings.to_a.each do |setting|
37
+ value = loader[setting.name.to_s.upcase]
38
38
 
39
39
  begin
40
- settings_obj.config.public_send(:"#{setting_name}=", value) if value
40
+ if value
41
+ settings_obj.config.public_send(:"#{setting.name}=", value)
42
+ else
43
+ settings_obj.config[setting.name]
44
+ end
41
45
  rescue => e # rubocop:disable Style/RescueStandardError
42
- errors[setting_name] = e
46
+ errors[setting.name] = e
43
47
  end
44
48
  end
45
49
 
@@ -47,19 +51,6 @@ module Dry
47
51
  end
48
52
  end
49
53
 
50
- # rubocop:disable Layout/LineLength
51
- def self.key(name, type)
52
- Dry::Core::Deprecations.announce(
53
- "Dry::System :settings provider source setting definition using `key`",
54
- "Use `setting` instead, with dry-configurable `setting` options, e.g. `setting :my_setting, default: \"hello\", constructor: Types::String.constrained(min_length: 3)`",
55
- tag: "dry-system",
56
- uplevel: 1
57
- )
58
-
59
- setting(name, constructor: type)
60
- end
61
- # rubocop:enable Layout/LineLength
62
-
63
54
  include Dry::Configurable
64
55
 
65
56
  private
@@ -26,12 +26,6 @@ module Dry
26
26
  require "dotenv"
27
27
  Dotenv.load(*dotenv_files(root, env)) if defined?(Dotenv)
28
28
  rescue LoadError
29
- Dry::Core::Deprecations.announce(
30
- "Dry::System :settings provider now requires dotenv to to load settings from .env files`", # rubocop:disable Layout/LineLength
31
- "Add `gem \"dotenv\"` to your application's `Gemfile`",
32
- tag: "dry-system",
33
- uplevel: 3
34
- )
35
29
  # Do nothing if dotenv is unavailable
36
30
  end
37
31
 
@@ -21,7 +21,7 @@ module Dry
21
21
  # requiring an app-specific types module for setting constructors)
22
22
  if block
23
23
  @settings_block = block
24
- elsif @settings_class
24
+ elsif defined? @settings_class
25
25
  @settings_class
26
26
  elsif @settings_block
27
27
  @settings_class = Class.new(Settings::Config, &@settings_block)
@@ -1,13 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/container/stub"
3
+ require "dry/core/container/stub"
4
4
 
5
5
  module Dry
6
6
  module System
7
7
  class Container
8
8
  # @api private
9
9
  module Stubs
10
- def finalize!(freeze: true, &block)
10
+ # This overrides default finalize! just to disable automatic freezing
11
+ # of the container
12
+ #
13
+ # @api private
14
+ def finalize!(**, &block)
11
15
  super(freeze: false, &block)
12
16
  end
13
17
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module System
5
- VERSION = "0.27.2"
5
+ VERSION = "1.0.0.rc1"
6
6
  end
7
7
  end
data/lib/dry/system.rb CHANGED
@@ -27,17 +27,6 @@ module Dry
27
27
  provider_sources.load_sources(path)
28
28
  end
29
29
 
30
- def self.register_provider(_name, options)
31
- Dry::Core::Deprecations.announce(
32
- "Dry::System.register_provider",
33
- "Use `Dry::System.register_provider_sources` instead",
34
- tag: "dry-system",
35
- uplevel: 1
36
- )
37
-
38
- register_provider_sources(options.fetch(:path))
39
- end
40
-
41
30
  # Registers a provider source, which can be used as the basis for other providers
42
31
  #
43
32
  # @api public
@@ -49,26 +38,10 @@ module Dry
49
38
  if source
50
39
  provider_sources.register(name: name, group: group, source: source)
51
40
  else
52
- provider_sources.register_from_block(
53
- name: name,
54
- group: group,
55
- target_container: self,
56
- &block
57
- )
41
+ provider_sources.register_from_block(name: name, group: group, &block)
58
42
  end
59
43
  end
60
44
 
61
- def self.register_component(name, provider:, &block)
62
- Dry::Core::Deprecations.announce(
63
- "Dry::System.register_component",
64
- "Use `Dry::System.register_provider_source` instead",
65
- tag: "dry-system",
66
- uplevel: 1
67
- )
68
-
69
- register_provider_source(name, group: provider, &block)
70
- end
71
-
72
45
  # @api private
73
46
  def self.provider_sources
74
47
  @provider_sources ||= ProviderSourceRegistry.new
metadata CHANGED
@@ -1,123 +1,95 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.2
4
+ version: 1.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-17 00:00:00.000000000 Z
11
+ date: 2022-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: zeitwerk
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.6'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.6'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: dry-auto_inject
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.4.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 0.4.0
41
- - !ruby/object:Gem::Dependency
42
- name: dry-configurable
43
15
  requirement: !ruby/object:Gem::Requirement
44
16
  requirements:
45
17
  - - "~>"
46
18
  - !ruby/object:Gem::Version
47
- version: '0.16'
48
- - - ">="
19
+ version: 1.0.0.rc1
20
+ - - "<"
49
21
  - !ruby/object:Gem::Version
50
- version: 0.16.0
22
+ version: '2'
51
23
  type: :runtime
52
24
  prerelease: false
53
25
  version_requirements: !ruby/object:Gem::Requirement
54
26
  requirements:
55
27
  - - "~>"
56
28
  - !ruby/object:Gem::Version
57
- version: '0.16'
58
- - - ">="
29
+ version: 1.0.0.rc1
30
+ - - "<"
59
31
  - !ruby/object:Gem::Version
60
- version: 0.16.0
32
+ version: '2'
61
33
  - !ruby/object:Gem::Dependency
62
- name: dry-container
34
+ name: dry-configurable
63
35
  requirement: !ruby/object:Gem::Requirement
64
36
  requirements:
65
37
  - - "~>"
66
38
  - !ruby/object:Gem::Version
67
- version: '0.10'
68
- - - ">="
39
+ version: '1.0'
40
+ - - "<"
69
41
  - !ruby/object:Gem::Version
70
- version: 0.10.0
42
+ version: '2'
71
43
  type: :runtime
72
44
  prerelease: false
73
45
  version_requirements: !ruby/object:Gem::Requirement
74
46
  requirements:
75
47
  - - "~>"
76
48
  - !ruby/object:Gem::Version
77
- version: '0.10'
78
- - - ">="
49
+ version: '1.0'
50
+ - - "<"
79
51
  - !ruby/object:Gem::Version
80
- version: 0.10.0
52
+ version: '2'
81
53
  - !ruby/object:Gem::Dependency
82
54
  name: dry-core
83
55
  requirement: !ruby/object:Gem::Requirement
84
56
  requirements:
85
57
  - - "~>"
86
58
  - !ruby/object:Gem::Version
87
- version: '0.9'
88
- - - ">="
59
+ version: '1.0'
60
+ - - "<"
89
61
  - !ruby/object:Gem::Version
90
- version: 0.9.0
62
+ version: '2'
91
63
  type: :runtime
92
64
  prerelease: false
93
65
  version_requirements: !ruby/object:Gem::Requirement
94
66
  requirements:
95
67
  - - "~>"
96
68
  - !ruby/object:Gem::Version
97
- version: '0.9'
98
- - - ">="
69
+ version: '1.0'
70
+ - - "<"
99
71
  - !ruby/object:Gem::Version
100
- version: 0.9.0
72
+ version: '2'
101
73
  - !ruby/object:Gem::Dependency
102
74
  name: dry-inflector
103
75
  requirement: !ruby/object:Gem::Requirement
104
76
  requirements:
105
77
  - - "~>"
106
78
  - !ruby/object:Gem::Version
107
- version: '0.1'
108
- - - ">="
79
+ version: '1.0'
80
+ - - "<"
109
81
  - !ruby/object:Gem::Version
110
- version: 0.1.2
82
+ version: '2'
111
83
  type: :runtime
112
84
  prerelease: false
113
85
  version_requirements: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - "~>"
116
88
  - !ruby/object:Gem::Version
117
- version: '0.1'
118
- - - ">="
89
+ version: '1.0'
90
+ - - "<"
119
91
  - !ruby/object:Gem::Version
120
- version: 0.1.2
92
+ version: '2'
121
93
  - !ruby/object:Gem::Dependency
122
94
  name: bundler
123
95
  requirement: !ruby/object:Gem::Requirement
@@ -176,7 +148,6 @@ files:
176
148
  - lib/dry/system/auto_registrar.rb
177
149
  - lib/dry/system/component.rb
178
150
  - lib/dry/system/component_dir.rb
179
- - lib/dry/system/components.rb
180
151
  - lib/dry/system/config/component_dir.rb
181
152
  - lib/dry/system/config/component_dirs.rb
182
153
  - lib/dry/system/config/namespace.rb
@@ -233,9 +204,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
204
  version: 2.7.0
234
205
  required_rubygems_version: !ruby/object:Gem::Requirement
235
206
  requirements:
236
- - - ">="
207
+ - - ">"
237
208
  - !ruby/object:Gem::Version
238
- version: '0'
209
+ version: 1.3.1
239
210
  requirements: []
240
211
  rubygems_version: 3.1.6
241
212
  signing_key:
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Dry::Core::Deprecations.announce(
4
- "require \"dry/system/components\"",
5
- "Use `require \"dry/system/provider_sources\"` instead",
6
- tag: "dry-system",
7
- uplevel: 1
8
- )
9
-
10
- require_relative "provider_sources"