161 lines
4.9 KiB
Markdown
161 lines
4.9 KiB
Markdown
<!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
|
|
|
|
## unreleased
|
|
|
|
|
|
### Added
|
|
|
|
- Add a warning about deprecation of the gem (via #89) (@solnic)
|
|
|
|
|
|
[Compare v0.11.0...master](https://github.com/dry-rb/dry-container/compare/v0.11.0...master)
|
|
|
|
## 0.11.0 2022-09-16
|
|
|
|
|
|
### Changed
|
|
|
|
- dry-configurable will be used whenever it is in the $LOAD_PATH (see dry-rb/dry-system#247 for more context) (@solnic)
|
|
|
|
[Compare v0.10.1...v0.11.0](https://github.com/dry-rb/dry-container/compare/v0.10.1...v0.11.0)
|
|
|
|
## 0.10.1 2022-07-29
|
|
|
|
|
|
### Changed
|
|
|
|
- Make `DidYouMean` integration optional (via #86) (@jbourassa)
|
|
|
|
[Compare v0.10.0...v0.10.1](https://github.com/dry-rb/dry-container/compare/v0.10.0...v0.10.1)
|
|
|
|
## 0.10.0 2022-07-10
|
|
|
|
⚠️ Notice that dry-container no longer depends on dry-configurable. If you happen to rely on the advanced configurable functionality, add dry-configurable as a dependency and require it **before** requiring dry-container.
|
|
|
|
### Added
|
|
|
|
- Accept block given to `#merge` (via #83) (@timriley)
|
|
|
|
### Changed
|
|
|
|
- [BREAKING] Replace dep on dry-configurable with a simple `Configuration` mod (see #84 for more details) (@solnic)
|
|
- Raise KeyError for missing key, with DidYouMean integration (via #82) (@cllns)
|
|
- Wrap FrozenError, to state that the container itself is frozen (see #74) (@cllns)
|
|
|
|
[Compare v0.9.0...v0.10.0](https://github.com/dry-rb/dry-container/compare/v0.9.0...v0.10.0)
|
|
|
|
## 0.9.0 2021-09-12
|
|
|
|
|
|
### Changed
|
|
|
|
- [internal] Upgraded to new `setting` API provided in dry-configurable 0.13.0 (@timriley in #77)
|
|
|
|
[Compare v0.8.0...v0.9.0](https://github.com/dry-rb/dry-container/compare/v0.8.0...v0.9.0)
|
|
|
|
## 0.8.0 2021-06-06
|
|
|
|
|
|
### Changed
|
|
|
|
- [BREAKING] Support for 2.4 and 2.5 was dropped
|
|
|
|
[Compare v0.7.2...v0.8.0](https://github.com/dry-rb/dry-container/compare/v0.7.2...v0.8.0)
|
|
|
|
## 0.7.2 2019-07-09
|
|
|
|
|
|
### Added
|
|
|
|
- `.resolve` accepts an optional fallback block, similar to how `Hash#fetch` works ([flash-gordon](https://github.com/flash-gordon))
|
|
```ruby
|
|
container.resolve('missing_key') { :fallback } # => :fallback
|
|
```
|
|
- `.decorate` can (again) work with static values. Also, it can take a block instead of `with` ([flash-gordon](https://github.com/flash-gordon))
|
|
```ruby
|
|
container.register('key', 'value')
|
|
container.decorate('key') { |v| "<'#{v}'>" }
|
|
container.resolve('key') # => "<'value'>"
|
|
```
|
|
|
|
|
|
[Compare v0.7.1...v0.7.2](https://github.com/dry-rb/dry-container/compare/v0.7.1...v0.7.2)
|
|
|
|
## 0.7.1 2019-06-07
|
|
|
|
|
|
### Fixed
|
|
|
|
- Added `Mixin#dup` and `Mixin#clone`, now copies don't share underlying containers (flash-gordon)
|
|
|
|
|
|
[Compare v0.7.0...v0.7.1](https://github.com/dry-rb/dry-container/compare/v0.7.0...v0.7.1)
|
|
|
|
## 0.7.0 2019-02-05
|
|
|
|
|
|
### Added
|
|
|
|
- Namespace DSL resolves keys relative to the current namespace, see the corresponding [changes](https://github.com/dry-rb/dry-container/pull/47) ([yuszuv](https://github.com/yuszuv))
|
|
- Registered objects can be decorated with the following API ([igor-alexandrov](https://github.com/igor-alexandrov))
|
|
|
|
```ruby
|
|
class CreateUser
|
|
def call(params)
|
|
# ...
|
|
end
|
|
end
|
|
container.register('create_user') { CreateUser.new }
|
|
container.decorate('create_user', with: ShinyLogger.new)
|
|
|
|
# Now subsequent resolutions will return a wrapped object
|
|
|
|
container.resolve('create_user')
|
|
# => #<ShinyLogger @obj=#<CreateUser:0x...>]>
|
|
```
|
|
- Freezing a container now prevents further registrations ([flash-gordon](https://github.com/flash-gordon))
|
|
- ## Internal
|
|
- Handling container items was generalized in [#34](https://github.com/dry-rb/dry-container/pull/34) ([GabrielMalakias](https://github.com/GabrielMalakias))
|
|
|
|
### Fixed
|
|
|
|
- Symbols are now coerced to strings when resolving stubbed dependencies ([cthulhu666](https://github.com/cthulhu666))
|
|
- Stubbing keys not present in container will raise an error ([flash-gordon](https://github.com/flash-gordon))
|
|
|
|
This means after upgrading you may see errors like this
|
|
```
|
|
ArgumentError (cannot stub "something" - no such key in container)
|
|
```
|
|
Be sure you register dependencies before using them. The new behavior will likely save quite a bit of time when debugging ill-configured container setups.
|
|
|
|
### Changed
|
|
|
|
- [BREAKING] Now only Ruby 2.3 and above is supported ([flash-gordon](https://github.com/flash-gordon))
|
|
|
|
[Compare v0.6.0...v0.7.0](https://github.com/dry-rb/dry-container/compare/v0.6.0...v0.7.0)
|
|
|
|
## 0.6.0 2016-12-09
|
|
|
|
|
|
### Added
|
|
|
|
- `Dry::Container::Mixin#each` - provides a means of seeing what all is registered in the container ([jeremyf](https://github.com/jeremyf))
|
|
|
|
### Fixed
|
|
|
|
- Including mixin into a class with a custom initializer ([maltoe](https://github.com/maltoe))
|
|
|
|
|
|
[Compare v0.5.0...v0.6.0](https://github.com/dry-rb/dry-container/compare/v0.5.0...v0.6.0)
|
|
|
|
## 0.5.0 2016-08-31
|
|
|
|
|
|
### Added
|
|
|
|
- `memoize` option to `#register` - memoizes items on first resolve ([ivoanjo](https://github.com/ivoanjo))
|
|
|
|
### Fixed
|
|
|
|
- `required_ruby_version` set to `>= 2.0.0` ([artofhuman](https://github.com/artofhuman))
|