All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Rails 7 support
- Do not depend on Rails for non-development, ActiveRecord instead
- Reset values on proxy object when keys are destroyed on a storext object. Keeping these values leads to surprising behavior. See:
- Predicater methods for strings returns
false
when blank
- Add Docker support for development
- Predicater methods (attributes with
?
at the end that return eithertrue
orfalse
)
- Rails 5 support
- Do not blow up when
select
is used, serialized column is not included, and default is defined for the store column #21
- Store the coerced values in the database. This may introduce a breaking change if one by-passes the reader method provided by
ActiveRecord::Store
. #17
- Do not blow up when
select
is used and the serialized column is not included #19
- Refactor ClassMethods#store_attribute to call store_accessor only with the key to be added, instead of including existing keys.
- Attempt to address memory leak issues by conservatively creating proxy classes and instances that convert values
- Add
#storext_has_key?
to check if a column has a key, but do so with indifferent access. When using PostgreSQL's hstore, the column's keys are strings.
- Fix how defaults are computed #7
- Apply fix in
1.0.1
todestroy_keys
- Fix bug when deleting keys
- Expose class method
storext_definitions
to list defined Storext attributes
- Fix issue where columm default was being overridden
- Ensure that behaviour remains the same as
ActiveRecord::Base
when no attributes are defined - Allow options to be passed in with
include Storext.model
- Fix overwriting of attributes in classes that share the same ancestor
- Fix discrepancy when setting attributes when creating and updating
- Fix: errors that show up when
include Storext
is in parent
- Fix: defaults are now set when an object is created
- Allow defining of type
Boolean
instead ofAxiom::Types::Boolean
- Fix issue when defining
name
store attribute - Refactor Storext module into mulitple classes:
- Storext::AttributeProxy
- Storext::ClassMethods
- Initial release