aaronmallen/activeinteractor

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog],
and this project adheres to [Semantic Versioning].

## [Unreleased]

## [v1.2.2] - 2023-09-30

### Fixed

- [\#366] Fixes a minor timing issue for when deferred after_perform callbacks are run.

## [v1.2.1] - 2022-09-26

### Fixed

- [\#358] Typo in generator template name

## [v1.1.7] - 2022-09-26

### Fixed

- [\#358] Typo in generator template name

## [v1.2.0] - 2022-09-08



- `ActiveInteractor::Base.defer_after_callbacks_when_organized`
- `ActiveInteractor::Organizer::Base.after_all_perform`
- `ActiveInteractor::Organizer::Base.around_all_perform`
- `ActiveInteractor::Organizer::Base.before_all_perform`

## [v1.1.6] - 2022-04-25

### Changed

- [\#344] Bump activemodel and activesupport to v7.0.2.3

## [v1.1.4] - 2022-03-07

### Changed

- [\#340] Bump activemodel and activesupport to 6.1.4.6

## [v1.1.3] - 2022-02-16

### Changed

- [\#338] Bump activemodel and activesupport to 6.1.4.4

## [v1.1.2] - 2020-11-10

### Changed

- [\#300](https://github.com/aaronmallen/activeinteractor/pull/300) `ActiveModel` and `ActiveSupport` v6.1 will be the
  highest supported version for `ActiveInteractor` v1.1.x

### Fixed

- [\#300](https://github.com/aaronmallen/activeinteractor/pull/300) `ActiveInteractor::Context::Error` compatibility
  with `ActiveModel` v6.1

## [v1.1.1] - 2020-10-21

### Fixed

- [\#267](https://github.com/aaronmallen/activeinteractor/pull/267) Allow default attributes to propagate to
  sibling/child interactors

## [v1.1.0] - 2020-10-04

### Added

- [\#247](https://github.com/aaronmallen/activeinteractor/issues/247) Support in place callbacks

### Fixed

- [\#242](https://github.com/aaronmallen/activeinteractor/issues/242) Optional attributes are always null
- [\#243](https://github.com/aaronmallen/activeinteractor/issues/243) Nested Organizers do not rollback parent context

## [v1.0.5] - 2020-09-15

### Fixed

- [\#200](https://github.com/aaronmallen/activeinteractor/issues/200) Context attributes assigned in interactor not
  accessible as element within interactor

## [v1.0.4] - 2020-02-11

### Fixed

- [\#184](https://github.com/aaronmallen/activeinteractor/issues/184) `ActiveInteractor::Context::Base#fail!` error

## [v1.0.3] - 2020-02-10

### Added

- `ActiveInteractor::Context::Errors`
- `ActiveInteractor::Context::Status#resolve`

### Fixed

- [\#168](https://github.com/aaronmallen/activeinteractor/issues/168) `#classify` is called on const arguments
- [\#169](https://github.com/aaronmallen/activeinteractor/issues/169) If some of the interactors of the organizer fail
  error message is not persisted.

## [v1.0.2] - 2020-02-04

### Added

- Support for `Dynamoid` ORM
- Support for `Mongoid` ORM

### Changed

- `ActiveInteractor::Models#acts_as_context` no longer includes `ActiveModel::Validations`
- `ActiveInteractor::Models#acts_as_context` now includes `ActiveInteractor::Context::Attributes`

### Removed

- `ActiveInteractor::Models::InstanceMethods#merge!`

## [v1.0.1] - 2020-01-28

### Added

- `ActiveInteractor::Context::Attributes#attribute?`
- `ActiveInteractor::Context::Attributes#has_attribute?`
- `ActiveInteractor::Context::Base.attribute`
- `ActiveInteractor::Context::Base.attribute_missing`
- `ActiveInteractor::Context::Base.attribute_names`
- `ActiveInteractor::Context::Base.method_missing`
- `ActiveInteractor::Context::Base.respond_to?`
- `ActiveInteractor::Context::Base.respond_to_without_attributes?`
- `ActiveInteractor::Context::Base#attribute_missing`
- `ActiveInteractor::Context::Base#attribute_names`
- `ActiveInteractor::Context::Base#method_missing`
- `ActiveInteractor::Context::Base#respond_to?`
- `ActiveInteractor::Context::Base#respond_to_without_attributes?`
- `ActiveInteractor::Interactor::Context#context_attribute_missing`
- `ActiveInteractor::Interactor::Context#context_attribute_names`
- `ActiveInteractor::Interactor::Context#context_respond_to_without_attributes?`
- `ActiveInteractor::Interactor::Context::ClassMethods#context_attribute`
- `ActiveInteractor::Interactor::Context::ClassMethods#context_attribute_missing`
- `ActiveInteractor::Interactor::Context::ClassMethods#context_attribute_names`
- `ActiveInteractor::Interactor::Context::ClassMethods#context_respond_to_without_attributes?`

## [v1.0.0] - 2020-01-26

### Added

- `ActiveInteractor::Config`
- `ActiveInteractor::Configurable`
- `ActiveInteractor::Context::Attributes#merge!`
- `ActiveInteractor::Context::Base#merge`
- `ActiveInteractor::Context::Loader`
- `ActiveInteractor::Context::Status`
- `ActiveInteractor::Error::InvalidContextClass`
- `ActiveInteractor::Models`
- `ActiveInteractor::Organizer::Callbacks`
- `ActiveInteractor::Organizer::InteractorInterface`
- `ActiveInteractor::Organizer::InteractorInterfaceCollection`
- `ActiveInteractor::Organizer::Organize`
- `ActiveInteractor::Organizer::Perform`
- `ActiveInteractor::Interactor::Context.contextualize_with`
- `ActiveInteractor::Interactor::Context#context_fail!`
- `ActiveInteractor::Interactor::Context#context_rollback!`
- `ActiveInteractor::Interactor::Context#finalize_context!`
- `ActiveInteractor::Interactor::Perform`
- `ActiveInteractor::Interactor::Perform::Options`
- `ActiveInteractor::Rails`
- `ActiveInteractor::Rails::Railtie`

### Changed

- `ActiveInteractor::Base` now calls an `ActiveSupport.on_load` hook with `:active_interactor` and
  `ActiveInteractor::Base`
- `ActiveInteractor::Context::Attributes.attributes` now excepts arguments for attributes
- `ActiveInteractor::Interactor.perform` now takes options
- `ActiveInteractor::Interactor::Context.context_class` will now first attempt to find an
  existing context class, and only create a new context class if a context is not found.
- Moved `ActiveInteractor::Organizer` to `ActiveInteractor::Organizer::Base`
- interactor, organizer, and context generators now accept `context_attributes`
  as arguments.

### Fixed

- various rails generator fixes

### Removed

- `ActiveInteractor::Configuration` use `ActiveInteractor::Config`
- `ActiveInteractor::Context::Attributes.attributes=` use `ActiveInteractor::Context#attributes`
- `ActiveInteractor::Context::Attributes.attribute_aliases`
- `ActiveInteractor::Context::Attributes.alias_attributes`
- `ActiveInteractor::Context::Attributes#clean!`
- `ActiveInteractor::Context::Attributes#keys`
- `ActiveInteractor::Interactor#fail_on_invalid_context?`
- `ActiveInteractor::Interactor#execute_rollback`
- `ActiveInteractor::Interactor#should_clean_context?`
- `ActiveInteractor::Interactor#skip_clean_context!`
- `ActiveInteractor::Interactor::Callbacks.allow_context_to_be_invalid`
- `ActiveInteractor::Interactor::Callbacks.clean_context_on_completion`
- `ActiveInteractor::Interactor::Context.context_attribute_aliases`
- `ActiveInteractor::Interactor::Execution`
- `ActiveInteractor::Interactor::Worker#run_callbacks`

## [v0.1.7] - 2019-09-10

### Fixed

- Ensure `Organizer` accurately reports context success

## [v0.1.6] - 2019-07-24

### Changed

- Lowered method complexity and enforced single responsibility

### Security

- Update simplecov: 0.16.1 → 0.17.0 (major)
- Update rake: 12.3.2 → 12.3.3 (patch)

## [v0.1.5] - 2019-06-30

### Added

- `ActiveInteractor::Error` module

### Deprecated

- `ActiveInteractor::Context::Failure` in favor of `ActiveInteractor::Error::ContextFailure`

### Security

- Update rubocop: 0.67.2 → 0.72.0 (major)
- Various dependency updates
- Update yard: 0.9.19 → 0.9.20 (minor)

## [v0.1.4] - 2019-04-12

### Added

- The ability to alias attributes on interactor contexts.

## [v0.1.3] - 2019-04-01

### Added

- Implement `each_perform` callbacks on organizers

## [v0.1.2] - 2019-04-01

### Added

- Allow the directory interactors are generated in to be configurable

## [v0.1.1] - 2019-03-30

### Fixed

- `NameError` (uninitialized constant `ActiveInteractor::Organizer`)
- `NoMethodError` (undefined method `merge` for `ActiveInteractor::Context::Base`)

## v0.1.0 - 2019-03-30

- Initial gem release

[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html

<!-- versions -->

[Unreleased]: https://github.com/aaronmallen/activeinteractor/compare/v1.2.2...HEAD
[v1.2.2]: https://github.com/aaronmallen/activeinteractor/compare/v1.2.1...v1.2.2
[v1.2.1]: https://github.com/aaronmallen/activeinteractor/compare/v1.2.0...v1.2.1
[v1.2.0]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.7...v1.2.0
[v1.1.7]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.6...v1.1.7
[v1.1.6]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.4...v1.1.6
[v1.1.4]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.3...v1.1.4
[v1.1.3]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.2...v1.1.3
[v1.1.2]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.1...v1.1.2
[v1.1.1]: https://github.com/aaronmallen/activeinteractor/compare/v1.1.0...v1.1.1
[v1.1.0]: https://github.com/aaronmallen/activeinteractor/compare/v1.0.5...v1.1.0
[v1.0.5]: https://github.com/aaronmallen/activeinteractor/compare/v1.0.4...v1.0.5
[v1.0.4]: https://github.com/aaronmallen/activeinteractor/compare/v1.0.3...v1.0.4
[v1.0.3]: https://github.com/aaronmallen/activeinteractor/compare/v1.0.2...v1.0.3
[v1.0.2]: https://github.com/aaronmallen/activeinteractor/compare/v1.0.1...v1.0.2
[v1.0.1]: https://github.com/aaronmallen/activeinteractor/compare/v1.0.0...v1.0.1
[v1.0.0]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.7...v1.0.0
[v0.1.7]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.6...v0.1.7
[v0.1.6]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.5...v0.1.6
[v0.1.5]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.4...v0.1.5
[v0.1.4]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.3...v0.1.4
[v0.1.3]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.2...v0.1.3
[v0.1.2]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.1...v0.1.2
[v0.1.1]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.0...v0.1.1