-
Add conditional
normalizessupport toSolid::Model(requires Rails 8.1+ withActiveModel::Attributes::Normalization). -
Add
normalizestoSolid::Value, automatically prepending:valueas the attribute name.
-
Add support for Ruby 3.4 and 4.x.
-
Add support for Rails 7.2, 8.0, and 8.1.
- Fix
BacktraceCleaner::BLOCKS_PATTERNto handle Ruby 4.x backtrace format ('Kernel#then'instead of`then').
-
Add
Solid::Process.configuration(freeze: true). -
Add
Solid::Process::EventLogs::BasicLoggerListener. -
Add
Solid::Process::BacktraceCleaner. -
Add
Solid::Process.configureas an alias toSolid::Process.configuration. -
Add
Solid::Valueto allow defining a value object. -
Solid::Model- Add
after_initializecallback. - Add
#[]to access instance attributes.
- Add
-
solid/validators- Add
id_validator, to check if the value is a positive integer or a string that represents a positive integer. - Add
is_validator, to check if the value satisfy the given predicate methods.
- Add
-
Replace the usage of
deep_symbolize_keyswithsymbolize_keysto perform the call more efficiently. -
Change
email_validatoranduuid_validatorto useI18nmessages. -
Relax
ActiveModeldependency to>= 6.0.
- Remove some validators:
bool_validatoris_a_validatorpersisted_validator
- Replace
bcdd-resultgemsolid-resultgem. This change removes the constant aliasesSolid::OutputandSolid::Result, as they are no longer needed.
-
Add
Solid::Process#success?,Solid::Process#failure?that delegate toSolid::Process#output.success?andSolid::Process#output.failure?. -
Add
Solid::Process#withmethod to create a new process instance with new dependencies. -
Add
Solid::Process#newmethod. It's similar toSolid::Process#withbut does not require passing the dependencies. If nothing is passed, it will use the same dependencies. -
Add
rescue_from(from::ActiveSupport::Rescuable) method toSolid::Processto rescue exceptions and return aSolid::Output. -
Add
Solid::Process.configandSolid::Process.configurationmethods to define a configuration for all processes.
- Move
Solid::Inputfeatures toSolid::Modelmodule. This change does not promote breaking changes.
-
Add
Solid::Modelmodule to define a model with attributes and validations.- It includes
ActiveModel::Api,ActiveModel::Access,ActiveModel::Attributes,ActiveModel::Dirty,ActiveModel::Validations::Callbacks.
- It includes
-
Add
Solid::Inputclass (which includesSolid::Model) to define an input object with attributes and validations. -
Add
Solid::OutputandSolid::Resultas constant aliases ofBCDD::Context. -
Add
Solid::Success()andSolid::Failure()methods to createBCDD::Contextinstances. -
Add
Solid::Processclass to be inherited and define a process with inputs, outputs, and steps. -
Add several ActiveModel validations to be used in
Solid::ModelandSolid::Inputclasses.bool_validatoremail_validatorinstance_of_validatoris_a_validatorkind_of_validatorpersisted_validatorrespond_to_validatorsingleton_validatoruuid_validator