Replace dep on dry-configurable with a simple Configuration mod

This commit is contained in:
Peter Solnica 2022-07-01 07:47:55 +02:00
parent 295038b44c
commit 854ad21a22
No known key found for this signature in database
GPG Key ID: 4B177344822BD3BB
4 changed files with 42 additions and 13 deletions

View File

@ -30,7 +30,6 @@ Gem::Specification.new do |spec|
# to update dependencies edit project.yml
spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
spec.add_runtime_dependency "dry-configurable", "~> 0.13", ">= 0.13.0"
spec.add_development_dependency "bundler"
spec.add_development_dependency "rake"

View File

@ -1,6 +1,5 @@
# frozen_string_literal: true
require "dry-configurable"
require "dry/container/error"
require "dry/container/namespace"
require "dry/container/registry"

View File

@ -4,6 +4,46 @@ require "concurrent/hash"
module Dry
class Container
# @api public
class Config
DEFAULT_NAMESPACE_SEPARATOR = "."
DEFAULT_RESOLVER = Resolver.new
DEFAULT_REGISTRY = Registry.new
# @api public
attr_accessor :namespace_separator
# @api public
attr_accessor :resolver
# @api public
attr_accessor :registry
# @api private
def initialize(
namespace_separator: DEFAULT_NAMESPACE_SEPARATOR,
resolver: DEFAULT_RESOLVER,
registry: DEFAULT_REGISTRY
)
@namespace_separator = namespace_separator
@resolver = resolver
@registry = registry
end
end
# @api public
module Configuration
# @api public
def config
@config ||= Config.new
end
# @api public
def configure
yield config
end
end
PREFIX_NAMESPACE = lambda do |namespace, key, config|
[namespace, key].join(config.namespace_separator)
end
@ -45,13 +85,9 @@ module Dry
end
base.class_eval do
extend ::Dry::Configurable
extend Configuration
extend hooks_mod
setting :registry, default: Dry::Container::Registry.new
setting :resolver, default: Dry::Container::Resolver.new
setting :namespace_separator, default: "."
@_container = ::Concurrent::Hash.new
end
end
@ -67,13 +103,9 @@ module Dry
# @private
def self.included(base)
base.class_eval do
extend ::Dry::Configurable
extend Configuration
prepend Initializer
setting :registry, default: Dry::Container::Registry.new
setting :resolver, default: Dry::Container::Resolver.new
setting :namespace_separator, default: "."
def config
self.class.config
end

View File

@ -10,4 +10,3 @@ gemspec:
- rspec
runtime_dependencies:
- [concurrent-ruby, "~> 1.0"]
- [dry-configurable, "~> 0.13", ">= 0.13.0"]