dry-core 1.0.1 → 1.1.0

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: 5c263a2d5bf720ac7d9e68c202b3552e4e82bba0b253ddc75a1aff5055463f9a
4
- data.tar.gz: 955cdffe644913ba567129a73aaf3ea0b748b2b2fd5244b5d559da013bd05df9
3
+ metadata.gz: ada367e2c1685eb461bc598f50ccf1496db04ca3872db6767cb78b68f662ce17
4
+ data.tar.gz: 2d4649248b3f5ed774e29a4bca37330aa38c0a044f834f01af9181d4454ebf9b
5
5
  SHA512:
6
- metadata.gz: da527ac6a598046f9c8c7c2c1264b3e18c979b2ca5c2df65a6709952a3238afe733e3c52e92e0322946c46ff7b54141d986e2cdfe41ad5c0ae125bc96ad52c80
7
- data.tar.gz: 64a8f1688c6781b2a10f3157747f8130c59072be29ed9b238500700166bb9c8e5d4b30e8a5493407c8354f71fd83d246dd3b9f9778dda6c23105dedcb209ae92
6
+ metadata.gz: 0f4a9cecf88aea238ea6fd977edd0878bc83c773a7f2955afec6552092ebcad0717a4978b47f4ceeb1dd316d201ba0adba4c4d6934c8b01a8eb3eac4f6d43d0e
7
+ data.tar.gz: 86b97e82c64baae2ae65c7da27c91102f1bc21a0c0c3c58a9c15dc541ebd10efeb9f1e5f8764297ad12a403e14be0d0ec15f5148182b83c0f891312824c03a42
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 1.1.0 2025-01-04
4
+
5
+
6
+ ### Changed
7
+
8
+ - Minimal Ruby version is 3.1 (@flash-gordon)
9
+ - Fixed clash with `dry-logger` (see #80) (@flash-gordon)
10
+
11
+ [Compare v1.0.1...v1.1.0](https://github.com/dry-rb/dry-core/compare/v1.0.1...v1.1.0)
12
+
3
13
  ## 1.0.1 2023-08-06
4
14
 
5
15
 
@@ -10,6 +20,9 @@
10
20
  Users of Equalizer should now only need to `require "dry/core"` first.
11
21
 
12
22
 
23
+ ### Changed
24
+
25
+ - Minimal Ruby version is 3.0 (@flash-gordon)
13
26
 
14
27
  [Compare v1.0.0...v1.0.1](https://github.com/dry-rb/dry-core/compare/v1.0.0...v1.0.1)
15
28
 
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  [gem]: https://rubygems.org/gems/dry-core
3
3
  [actions]: https://github.com/dry-rb/dry-core/actions
4
4
 
5
- # dry-core [![Gem Version](https://badge.fury.io/rb/dry-core.svg)][gem] [![CI Status](https://github.com/dry-rb/dry-core/workflows/ci/badge.svg)][actions]
5
+ # dry-core [![Gem Version](https://badge.fury.io/rb/dry-core.svg)][gem] [![CI Status](https://github.com/dry-rb/dry-core/workflows/CI/badge.svg)][actions]
6
6
 
7
7
  ## Links
8
8
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  This library officially supports the following Ruby versions:
16
16
 
17
- * MRI `>= 3.0.0`
17
+ * MRI `>= 3.1`
18
18
  * jruby `>= 9.4` (not tested on CI)
19
19
 
20
20
  ## License
data/dry-core.gemspec CHANGED
@@ -21,18 +21,16 @@ 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-core/blob/main/CHANGELOG.md"
26
- spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-core"
27
- spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-core/issues"
24
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
+ spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-core/blob/main/CHANGELOG.md"
26
+ spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-core"
27
+ spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-core/issues"
28
+ spec.metadata["rubygems_mfa_required"] = "true"
28
29
 
29
- spec.required_ruby_version = ">= 3.0.0"
30
+ spec.required_ruby_version = ">= 3.1.0"
30
31
 
31
32
  # to update dependencies edit project.yml
32
- spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
33
- spec.add_runtime_dependency "zeitwerk", "~> 2.6"
34
-
35
- spec.add_development_dependency "bundler"
36
- spec.add_development_dependency "rake"
37
- spec.add_development_dependency "rspec"
33
+ spec.add_dependency "concurrent-ruby", "~> 1.0"
34
+ spec.add_dependency "logger"
35
+ spec.add_dependency "zeitwerk", "~> 2.6"
38
36
  end
@@ -137,8 +137,7 @@ module Dry
137
137
 
138
138
  # @since 0.8.0
139
139
  # @api private
140
- def __inspect # rubocop:disable Style/EmptyMethod
141
- end
140
+ def __inspect; end
142
141
  end
143
142
  end
144
143
  end
@@ -23,7 +23,7 @@ module Dry
23
23
  def self.extended(klass)
24
24
  super
25
25
  klass.include(Methods)
26
- klass.instance_variable_set(:@__cache__, Concurrent::Map.new)
26
+ klass.instance_variable_set(:@__cache__, ::Concurrent::Map.new)
27
27
  end
28
28
 
29
29
  # @api private
@@ -48,8 +48,8 @@ module Dry
48
48
  #
49
49
  # @return [Object] block's return value (cached for subsequent calls with
50
50
  # the same argument values)
51
- def fetch_or_store(*args, &block)
52
- cache.fetch_or_store(args.hash, &block)
51
+ def fetch_or_store(*args, &)
52
+ cache.fetch_or_store(args.hash, &)
53
53
  end
54
54
 
55
55
  # Instance methods
@@ -4,14 +4,14 @@ module Dry
4
4
  module Core
5
5
  # Class for generating more classes
6
6
  class ClassBuilder
7
- ParentClassMismatch = Class.new(TypeError)
7
+ ParentClassMismatch = ::Class.new(::TypeError)
8
8
 
9
9
  attr_reader :name, :parent, :namespace
10
10
 
11
11
  def initialize(name:, parent: nil, namespace: nil)
12
12
  @name = name
13
13
  @namespace = namespace
14
- @parent = parent || Object
14
+ @parent = parent || ::Object
15
15
  end
16
16
 
17
17
  # Generate a class based on options
@@ -48,7 +48,7 @@ module Dry
48
48
 
49
49
  # @api private
50
50
  def create_anonymous
51
- klass = Class.new(parent)
51
+ klass = ::Class.new(parent)
52
52
  name = self.name
53
53
 
54
54
  klass.singleton_class.class_eval do
@@ -64,7 +64,7 @@ module Dry
64
64
  def create_named
65
65
  name = self.name
66
66
  base = create_base(namespace, name, parent)
67
- klass = Class.new(base)
67
+ klass = ::Class.new(base)
68
68
 
69
69
  namespace.module_eval do
70
70
  remove_const(name)
@@ -93,7 +93,7 @@ module Dry
93
93
 
94
94
  existing
95
95
  else
96
- klass = Class.new(parent || Object)
96
+ klass = ::Class.new(parent || ::Object)
97
97
  namespace.const_set(name, klass)
98
98
  klass
99
99
  end
@@ -27,7 +27,7 @@ module Dry
27
27
  # An empty string
28
28
  EMPTY_STRING = ""
29
29
  # Identity function
30
- IDENTITY = (-> x { x }).freeze
30
+ IDENTITY = ->(x) { x }.freeze
31
31
 
32
32
  # A special value you can use as a default to know if no arguments
33
33
  # were passed to the method
@@ -40,7 +40,7 @@ module Dry
40
40
  # puts value
41
41
  # end
42
42
  # end
43
- Undefined = Object.new.tap do |undefined|
43
+ Undefined = ::Object.new.tap do |undefined|
44
44
  # @api private
45
45
  Self = -> { Undefined } # rubocop:disable Lint/ConstantDefinitionInBlock
46
46
 
@@ -8,6 +8,8 @@ module Dry
8
8
  # @api abstract
9
9
  #
10
10
  class Item
11
+ NO_OPTIONS = {}.freeze
12
+
11
13
  # @return [Mixed] the item to be solved later
12
14
  attr_reader :item
13
15
 
@@ -15,16 +17,17 @@ module Dry
15
17
  attr_reader :options
16
18
 
17
19
  # @api abstract
18
- def initialize(item, options = {})
20
+ def initialize(item, options = NO_OPTIONS)
19
21
  @item = item
20
22
  @options = {
21
- call: item.is_a?(::Proc) && item.parameters.empty?
22
- }.merge(options)
23
+ call: item.is_a?(::Proc) && item.parameters.empty?,
24
+ **options
25
+ }
23
26
  end
24
27
 
25
28
  # @api abstract
26
29
  def call
27
- raise NotImplementedError
30
+ raise ::NotImplementedError
28
31
  end
29
32
 
30
33
  # @private
@@ -6,18 +6,18 @@ require "dry/core/constants"
6
6
  module Dry
7
7
  module Core
8
8
  class Container
9
- include Dry::Core::Constants
9
+ include ::Dry::Core::Constants
10
10
 
11
11
  # @api public
12
- Error = Class.new(StandardError)
12
+ Error = ::Class.new(::StandardError)
13
13
 
14
14
  # Error raised when key is not defined in the registry
15
15
  #
16
16
  # @api public
17
- KeyError = Class.new(::KeyError)
17
+ KeyError = ::Class.new(::KeyError)
18
18
 
19
- if defined?(DidYouMean::KeyErrorChecker)
20
- DidYouMean.correct_error(KeyError, DidYouMean::KeyErrorChecker)
19
+ if defined?(::DidYouMean::KeyErrorChecker)
20
+ ::DidYouMean.correct_error(KeyError, ::DidYouMean::KeyErrorChecker)
21
21
  end
22
22
 
23
23
  # Mixin to expose Inversion of Control (IoC) container behaviour
@@ -68,7 +68,7 @@ module Dry
68
68
 
69
69
  # @private
70
70
  module Initializer
71
- def initialize(*args, &block)
71
+ def initialize(...)
72
72
  @_container = ::Concurrent::Hash.new
73
73
  super
74
74
  end
@@ -112,8 +112,8 @@ module Dry
112
112
  config.registry.call(_container, key, item, options)
113
113
 
114
114
  self
115
- rescue FrozenError
116
- raise FrozenError,
115
+ rescue ::FrozenError
116
+ raise ::FrozenError,
117
117
  "can't modify frozen #{self.class} (when attempting to register '#{key}')"
118
118
  end
119
119
 
@@ -128,8 +128,8 @@ module Dry
128
128
  # @return [Mixed]
129
129
  #
130
130
  # @api public
131
- def resolve(key, &block)
132
- config.resolver.call(_container, key, &block)
131
+ def resolve(key, &)
132
+ config.resolver.call(_container, key, &)
133
133
  end
134
134
 
135
135
  # Resolve an item from the container
@@ -198,8 +198,8 @@ module Dry
198
198
  # @return [Dry::Core::Container::Mixin] self
199
199
  #
200
200
  # @api public
201
- def each_key(&block)
202
- config.resolver.each_key(_container, &block)
201
+ def each_key(&)
202
+ config.resolver.each_key(_container, &)
203
203
  self
204
204
  end
205
205
 
@@ -215,8 +215,8 @@ module Dry
215
215
  # @note In discussions with other developers, it was felt that being able to iterate
216
216
  # over not just the registered keys, but to see what was registered would be
217
217
  # very helpful. This is a step toward doing that.
218
- def each(&block)
219
- config.resolver.each(_container, &block)
218
+ def each(&)
219
+ config.resolver.each(_container, &)
220
220
  end
221
221
 
222
222
  # Decorates an item from the container with specified decorator
@@ -250,12 +250,12 @@ module Dry
250
250
  # @return [Dry::Core::Container::Mixin] self
251
251
  #
252
252
  # @api public
253
- def namespace(namespace, &block)
253
+ def namespace(namespace, &)
254
254
  ::Dry::Core::Container::NamespaceDSL.new(
255
255
  self,
256
256
  namespace,
257
257
  config.namespace_separator,
258
- &block
258
+ &
259
259
  )
260
260
 
261
261
  self
@@ -34,12 +34,12 @@ module Dry
34
34
  end
35
35
  end
36
36
 
37
- def register(key, *args, &block)
38
- super(namespaced(key), *args, &block)
37
+ def register(key, ...)
38
+ super(namespaced(key), ...)
39
39
  end
40
40
 
41
- def namespace(namespace, &block)
42
- super(namespaced(namespace), &block)
41
+ def namespace(namespace, &)
42
+ super(namespaced(namespace), &)
43
43
  end
44
44
 
45
45
  def import(namespace)
@@ -66,8 +66,8 @@ module Dry
66
66
  # @return Hash
67
67
  #
68
68
  # @api public
69
- def each_key(container, &block)
70
- container.each_key(&block)
69
+ def each_key(container, &)
70
+ container.each_key(&)
71
71
  end
72
72
 
73
73
  # Calls block once for each key in container, passing the key and
@@ -81,8 +81,8 @@ module Dry
81
81
  # @note In discussions with other developers, it was felt that being able
82
82
  # to iterate over not just the registered keys, but to see what was
83
83
  # registered would be very helpful. This is a step toward doing that.
84
- def each(container, &block)
85
- container.map { |key, value| [key, value.call] }.each(&block)
84
+ def each(container, &)
85
+ container.map { |key, value| [key, value.call] }.each(&)
86
86
  end
87
87
  end
88
88
  end
@@ -14,7 +14,7 @@ module Dry
14
14
  # Add a stub to the container
15
15
  def stub(key, value, &block)
16
16
  unless key?(key)
17
- raise ArgumentError, "cannot stub #{key.to_s.inspect} - no such key in container"
17
+ raise ::ArgumentError, "cannot stub #{key.to_s.inspect} - no such key in container"
18
18
  end
19
19
 
20
20
  _stubs[key.to_s] = value
@@ -102,11 +102,11 @@ module Dry
102
102
  # @param [#warn] logger
103
103
  #
104
104
  # @api public
105
- def set_logger!(output = $stderr) # rubocop:disable Naming/AccessorMethodName
105
+ def set_logger!(output = $stderr)
106
106
  if output.respond_to?(:warn)
107
107
  @logger = output
108
108
  else
109
- @logger = Logger.new(output).tap do |logger|
109
+ @logger = ::Logger.new(output).tap do |logger|
110
110
  logger.formatter = proc { |_, _, _, msg| "#{msg}\n" }
111
111
  end
112
112
  end
@@ -194,7 +194,7 @@ module Dry
194
194
  message
195
195
  )
196
196
 
197
- meth = new_name ? method(new_name) : method(old_name)
197
+ meth = method(new_name || old_name)
198
198
 
199
199
  singleton_class.instance_exec do
200
200
  undef_method old_name if method_defined?(old_name)
@@ -218,7 +218,7 @@ module Dry
218
218
  message
219
219
  )
220
220
 
221
- mod = Module.new do
221
+ mod = ::Module.new do
222
222
  define_method(:const_missing) do |missing|
223
223
  if missing == constant_name
224
224
  warn("#{full_msg}\n#{STACK.()}")
@@ -30,7 +30,7 @@ module Dry
30
30
  class << self
31
31
  # @api private
32
32
  def setup(target)
33
- target.instance_variable_set(:@descendants, Concurrent::Array.new)
33
+ target.instance_variable_set(:@descendants, ::Concurrent::Array.new)
34
34
  end
35
35
 
36
36
  private
@@ -150,7 +150,7 @@ module Dry
150
150
  #
151
151
  # @api public
152
152
  def self.Equalizer(*keys, **options)
153
- Dry::Core::Equalizer.new(*keys, **options)
153
+ ::Dry::Core::Equalizer.new(*keys, **options)
154
154
  end
155
155
  end
156
156
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Dry
4
4
  module Core
5
- class InvalidClassAttributeValueError < StandardError
5
+ class InvalidClassAttributeValueError < ::StandardError
6
6
  def initialize(name, value)
7
7
  super(
8
8
  "Value #{value.inspect} is invalid for class attribute #{name.inspect}"
@@ -25,7 +25,7 @@ module Dry
25
25
  def self.extended(obj)
26
26
  super
27
27
  obj.instance_variable_set(:@__available_extensions__, {})
28
- obj.instance_variable_set(:@__loaded_extensions__, Set.new)
28
+ obj.instance_variable_set(:@__loaded_extensions__, ::Set.new)
29
29
  end
30
30
 
31
31
  # Register an extension
@@ -50,7 +50,7 @@ module Dry
50
50
  def load_extensions(*extensions)
51
51
  extensions.each do |ext|
52
52
  block = @__available_extensions__.fetch(ext) do
53
- raise ArgumentError, "Unknown extension: #{ext.inspect}"
53
+ raise ::ArgumentError, "Unknown extension: #{ext.inspect}"
54
54
  end
55
55
  unless @__loaded_extensions__.include?(ext)
56
56
  block.call
@@ -12,7 +12,7 @@ module Dry
12
12
  ],
13
13
  dry_inflector: [
14
14
  "dry/inflector",
15
- proc { Dry::Inflector.new }
15
+ proc { ::Dry::Inflector.new }
16
16
  ],
17
17
  inflecto: [
18
18
  "inflecto",
@@ -25,7 +25,7 @@ module Dry
25
25
  # @api private
26
26
  def self.realize_backend(path, backend_factory)
27
27
  require path
28
- rescue LoadError
28
+ rescue ::LoadError
29
29
  nil
30
30
  else
31
31
  backend_factory.call
@@ -37,9 +37,11 @@ module Dry
37
37
  def self.detect_backend
38
38
  BACKENDS.inject(nil) do |backend, (_, (path, factory))|
39
39
  backend || realize_backend(path, factory)
40
- end || raise(LoadError,
41
- "No inflector library could be found: "\
42
- "please install either the `inflecto` or `activesupport` gem.")
40
+ end || raise(
41
+ LoadError,
42
+ "No inflector library could be found: " \
43
+ "please install either the `inflecto` or `activesupport` gem."
44
+ )
43
45
  end
44
46
 
45
47
  # Set preferred backend
@@ -47,7 +49,7 @@ module Dry
47
49
  # @param [Symbol] name backend name (:activesupport or :inflecto)
48
50
  def self.select_backend(name = nil)
49
51
  if name && !BACKENDS.key?(name)
50
- raise NameError, "Invalid inflector library selection: '#{name}'"
52
+ raise ::NameError, "Invalid inflector library selection: '#{name}'"
51
53
  end
52
54
 
53
55
  @inflector = name ? realize_backend(*BACKENDS[name]) : detect_backend
@@ -23,7 +23,7 @@ module Dry
23
23
  module BasicObject
24
24
  include Base
25
25
 
26
- def new(*)
26
+ def new(*, **)
27
27
  obj = super
28
28
  obj.instance_eval { @__memoized__ = MEMOIZED_HASH.dup }
29
29
  obj
@@ -33,15 +33,11 @@ module Dry
33
33
  module Object
34
34
  include Base
35
35
 
36
- def new(*)
36
+ def new(*, **)
37
37
  obj = super
38
38
  obj.instance_variable_set(:@__memoized__, MEMOIZED_HASH.dup)
39
39
  obj
40
40
  end
41
-
42
- if respond_to?(:ruby2_keywords, true)
43
- ruby2_keywords(:new)
44
- end
45
41
  end
46
42
  end
47
43
 
@@ -77,14 +73,13 @@ module Dry
77
73
 
78
74
  # @api private
79
75
  # rubocop:disable Metrics/AbcSize
80
- # rubocop:disable Metrics/PerceivedComplexity
81
76
  def define_memoizable(method:)
82
77
  parameters = method.parameters
83
78
  mod = self
84
79
  kernel = KERNEL
85
80
 
86
81
  if parameters.empty?
87
- key = "#{object_id}:#{method.name}".hash.abs
82
+ key = "#{__id__}:#{method.name}".hash.abs
88
83
 
89
84
  define_method(method.name) do
90
85
  value = super()
@@ -134,7 +129,7 @@ module Dry
134
129
  WARN
135
130
  end
136
131
 
137
- m = module_eval(<<~RUBY, __FILE__, __LINE__ + 1)
132
+ module_eval(<<~RUBY, __FILE__, __LINE__ + 1)
138
133
  def #{method.name}(#{params.join(", ")}) # def slow_calc(arg1, arg2, arg3)
139
134
  key = [:"#{method.name}", #{binds.join(", ")}].hash # key = [:slow_calc, arg1, arg2, arg3].hash
140
135
  #
@@ -146,16 +141,10 @@ module Dry
146
141
  end # end
147
142
  RUBY
148
143
 
149
- if respond_to?(:ruby2_keywords, true) && mapping.key?(:reyrest)
150
- ruby2_keywords(method.name)
151
- end
152
-
153
- m
154
144
  end
155
145
  end
156
- # rubocop:enable Metrics/AbcSize
157
- # rubocop:enable Metrics/PerceivedComplexity
158
146
 
147
+ # rubocop:enable Metrics/AbcSize
159
148
  # @api private
160
149
  def declaration(definition, lookup)
161
150
  params = []
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module Core
5
- VERSION = "1.0.1"
5
+ VERSION = "1.1.0"
6
6
  end
7
7
  end
data/lib/dry/core.rb CHANGED
@@ -13,10 +13,10 @@ module Dry
13
13
  include Constants
14
14
 
15
15
  def self.loader
16
- @loader ||= Zeitwerk::Loader.new.tap do |loader|
17
- root = File.expand_path("..", __dir__)
16
+ @loader ||= ::Zeitwerk::Loader.new.tap do |loader|
17
+ root = ::File.expand_path("..", __dir__)
18
18
  loader.tag = "dry-core"
19
- loader.inflector = Zeitwerk::GemInflector.new("#{root}/dry-core.rb")
19
+ loader.inflector = ::Zeitwerk::GemInflector.new("#{root}/dry-core.rb")
20
20
  loader.push_dir(root)
21
21
  loader.ignore(
22
22
  "#{root}/dry-core.rb",
@@ -50,7 +50,7 @@ module Dry
50
50
  #
51
51
  # @api public
52
52
  def self.Equalizer(*keys, **options)
53
- Dry::Core::Equalizer.new(*keys, **options)
53
+ ::Dry::Core::Equalizer.new(*keys, **options)
54
54
  end
55
55
  end
56
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikita Shilnikov
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-06 00:00:00.000000000 Z
11
+ date: 2025-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -25,41 +25,13 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: zeitwerk
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.6'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.6'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
28
+ name: logger
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
46
32
  - !ruby/object:Gem::Version
47
33
  version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
34
+ type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
@@ -67,19 +39,19 @@ dependencies:
67
39
  - !ruby/object:Gem::Version
68
40
  version: '0'
69
41
  - !ruby/object:Gem::Dependency
70
- name: rspec
42
+ name: zeitwerk
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
- - - ">="
45
+ - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
47
+ version: '2.6'
48
+ type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
- - - ">="
52
+ - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: '0'
54
+ version: '2.6'
83
55
  description: A toolset of small support modules used throughout the dry-rb ecosystem
84
56
  email:
85
57
  - fg@flashgordon.ru
@@ -127,7 +99,8 @@ metadata:
127
99
  changelog_uri: https://github.com/dry-rb/dry-core/blob/main/CHANGELOG.md
128
100
  source_code_uri: https://github.com/dry-rb/dry-core
129
101
  bug_tracker_uri: https://github.com/dry-rb/dry-core/issues
130
- post_install_message:
102
+ rubygems_mfa_required: 'true'
103
+ post_install_message:
131
104
  rdoc_options: []
132
105
  require_paths:
133
106
  - lib
@@ -135,15 +108,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
108
  requirements:
136
109
  - - ">="
137
110
  - !ruby/object:Gem::Version
138
- version: 3.0.0
111
+ version: 3.1.0
139
112
  required_rubygems_version: !ruby/object:Gem::Requirement
140
113
  requirements:
141
114
  - - ">="
142
115
  - !ruby/object:Gem::Version
143
116
  version: '0'
144
117
  requirements: []
145
- rubygems_version: 3.3.26
146
- signing_key:
118
+ rubygems_version: 3.3.27
119
+ signing_key:
147
120
  specification_version: 4
148
121
  summary: A toolset of small support modules used throughout the dry-rb ecosystem
149
122
  test_files: []