dry-core 1.0.2 → 1.1.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: 36bbcb4408defe80fa90d925a7cb44f39a7e879bf0b2a8c81833e798a5446c63
4
- data.tar.gz: d15a43167c6de013170621a556a7d2845f79cb24e1d611359d17bf8918f2d0fd
3
+ metadata.gz: ada367e2c1685eb461bc598f50ccf1496db04ca3872db6767cb78b68f662ce17
4
+ data.tar.gz: 2d4649248b3f5ed774e29a4bca37330aa38c0a044f834f01af9181d4454ebf9b
5
5
  SHA512:
6
- metadata.gz: 8189675ea585094286244bef37ca1bc400eadf18a295e3d6a3beb23ed3e733c94a5bf8da8c3df001022244df2b2d1a68212370a6e248b53504d1a48726131a7f
7
- data.tar.gz: 70b957e62e938bee19922086549d3472ab36676d5e30cf6f671e88f844d1ce4787d4d71f4980875cbf6d8b5c4d79fe6eb7afe0a626b6bb38d45f28ddce18fec8
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
 
@@ -12,7 +22,7 @@
12
22
 
13
23
  ### Changed
14
24
 
15
- - Minimal Ruby version is 3.0
25
+ - Minimal Ruby version is 3.0 (@flash-gordon)
16
26
 
17
27
  [Compare v1.0.0...v1.0.1](https://github.com/dry-rb/dry-core/compare/v1.0.0...v1.0.1)
18
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,19 +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 "logger"
34
- spec.add_runtime_dependency "zeitwerk", "~> 2.6"
35
-
36
- spec.add_development_dependency "bundler"
37
- spec.add_development_dependency "rake"
38
- 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"
39
36
  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
@@ -106,7 +106,7 @@ module Dry
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
@@ -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.2"
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.2
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: 2024-10-29 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
@@ -52,48 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.6'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
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: rspec
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
55
  description: A toolset of small support modules used throughout the dry-rb ecosystem
98
56
  email:
99
57
  - fg@flashgordon.ru
@@ -141,7 +99,8 @@ metadata:
141
99
  changelog_uri: https://github.com/dry-rb/dry-core/blob/main/CHANGELOG.md
142
100
  source_code_uri: https://github.com/dry-rb/dry-core
143
101
  bug_tracker_uri: https://github.com/dry-rb/dry-core/issues
144
- post_install_message:
102
+ rubygems_mfa_required: 'true'
103
+ post_install_message:
145
104
  rdoc_options: []
146
105
  require_paths:
147
106
  - lib
@@ -149,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
108
  requirements:
150
109
  - - ">="
151
110
  - !ruby/object:Gem::Version
152
- version: 3.0.0
111
+ version: 3.1.0
153
112
  required_rubygems_version: !ruby/object:Gem::Requirement
154
113
  requirements:
155
114
  - - ">="
@@ -157,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
116
  version: '0'
158
117
  requirements: []
159
118
  rubygems_version: 3.3.27
160
- signing_key:
119
+ signing_key:
161
120
  specification_version: 4
162
121
  summary: A toolset of small support modules used throughout the dry-rb ecosystem
163
122
  test_files: []