Sha256: 5c87d677a9a0552d192a87ef07cce52bb42019f2c242e4ef2b84534d2101189e

Contents?: true

Size: 580 Bytes

Versions: 5

Compression:

Stored size: 580 Bytes

Contents

module Dry
  module System
    module Plugins
      # @api public
      module Decorate
        # @api public
        def decorate(key, decorator:)
          original = _container.delete(key.to_s)

          if original.is_a?(Dry::Container::Item) && original.options[:call] && decorator.is_a?(Class)
            register(key) do
              decorator.new(original.call)
            end
          else
            decorated = decorator.is_a?(Class) ? decorator.new(original) : decorator
            register(key, decorated)
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dry-system-0.10.1 lib/dry/system/plugins/decorate.rb
dry-system-0.10.0 lib/dry/system/plugins/decorate.rb
dry-system-0.9.2 lib/dry/system/plugins/decorate.rb
dry-system-0.9.1 lib/dry/system/plugins/decorate.rb
dry-system-0.9.0 lib/dry/system/plugins/decorate.rb