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.
- Skip freezing in test environments so it doesnt interfere with stubbing
- Fixed issue where commands didnt delegate to private methods
- Remove
to_hash
method
- Prefixed util method with
cmd_
- Improve monotonic clock handling
- Improve order of hook calls
- Allow if and unless evaluations to happen at the same time
- Move callbacks to hooks instead of try methods
- Renamed private
delegate
method todelegates
to prevent rails clash
- Add exception data to results hash
- Relocated some results methods to a runtimes internal module
- Assign correct fault even when child command is hard called
- Renamed
fault_exception
tocommand_exception
- Added passing
original_exception
to fault!
calls
- Move monotonic clock to util
- Changed
metadata
to a keyword arg on fault!
calls
- Removed unnecessary
Lite::Command::
prefixes - Removed double if/unless eval for required validations
- Make state set methods private
- Add returns for invalid state and status transitions
- Add option to raise original or fault exception
- Added
raise!
method to reraise soft call errors
- Fixed leakage of configuration option changes in spec
- Changed equality check for better matching
- Added
bad?
status method check - Configuration class to handle dynamic error creation
- Added
on_before_validation
callback hook - Added validation support
- Added new
required
andoptional
attribute methods
- Improved values of
caused_by
andthrown_by
- Use try util instead of hook
- Removed attributes method
- Move super in inheritance
- Allow
filled
to pass{ empty: false }
to check if value is empty
- Added on_status hook to
execute!
- Reuse same attribute instance
- Added passing metadata to faults
- Added
on_success
callback - Added
on_pending
,on_executing
,on_complete
, andon_interrupted
callbacks - Added attributes and attribute validations
- Added steps and sequences
- Added fault streamer
- Check error descendency instead of type
- Rename internal modules
- Make execute(!) methods private
- Remove predefined callback methods
- Remove non-bang fault methods
- Simplify error building
- Reduced recalling error since we can just throw it once
- Rename
fault_name
totype
- faultable module
- Simplified status variable check
- Simplified context merge
- Fixed invalid looking at wrong variable
- Renamed
fault
andthrower
tocaused_by
andthrown_by
respectively - Removed unused
additional_result_data
method
- Removed context init
- Activemodel dependency
- Rewrite app to use interactor pattern
- Update docs
- Rename internal variables for more clarity
- Improved spec checkers
- Fixed nil issue with
assign_and_return!
- Added
assign_and_return!
to propagation extension
- Improved setup
- Improved Railtie support
- Added Ruby 3.0 support
- Add failed_steps to procedure
- Improve procedure error merging
- Added procedure support for running multiple commands
- Added Ruby 2.7 support
- Removed generator empty directory check
- Removed lite-command generator
- Removed rspec file from rails generator
- Changed create propagation to check errors instead of persistence
- Add propagation mixin
- Raise error when class
call
if class doesn't respond_toexecute
- Add
merge_exception!
method to errors module
- Add
merge_errors!
method to errors module
- Add rails generators
- Renamed command method to execute
- Renamed run method to execute
- Pass args to command in call for Simple based commands
- Initial project version