## [Unreleased] ## [1.0.0] - (in beta) ### Breaking changes - Ruby 2.7.x support dropped. The minimum supported Ruby version is now 3.0.0. - `#encoded_id` now defaults to returning an 'annotated' ID, one in which a prefix is added to the encoded ID to indicate the 'type' of the record the ID represents. This can be disabled. IDs generated by older versions of this gem will decode correctly. But not that IDs generated by this version onwards will not decode correctly by older versions of this gem so make sure to disable annotation if you need to support older versions of this gem. - `#name_for_encoded_id_slug` no longer provides a default implementation, it is up to the user to define this method, or configure the gem to use a different method name. - `#slugged_encoded_id` no longer takes a `with:` parameter. To specify the name of the method to call to generate the slug, use the `slug_value_method_name` configuration option. ### Added - `#encoded_id_hash` has been added to return only the encoded ID without an annotation prefix. If annotation is disabled, this method is basically an alias to `#encoded_id`. - `.find_all_by_encoded_id` has been added to return all records matching the given encoded ID. This will return all matching records whose IDs are encoded in the encoded_id. Missing records are ignored. - `.find_all_by_encoded_id!` like `.find_all_by_encoded_id` but raises an `ActiveRecord::RecordNotFound` exception if *any* of the records are not found. ### Fixed - `#decode_encoded_id` now raises if the encoded ID is not a string. ## [0.6.2] - 2023-02-09 - Fix `encoded_id` memoization clearing when record is duplicated ## [0.6.1] - 2023-02-09 - Fix `#encoded_id` to return nil if `#id` is nil - Ensure `encoded_id` memoization is cleared when record is duplicated, or id changes ## [0.6.0] - 2022-12-21 - Rename mixin to `Model` - Introduce optional mixins for overriding `#to_param` ## [0.5.0] - 2022-12-21 - `name_for_encoded_id_slug` no longer uses the return value from name but rather just uses the `class` `name`. - If you want to change the name used in the slug, override `name_for_encoded_id_slug` ## [0.4.0] - 2022-12-18 - Refactor internals, remove any methods not actually related to creating `encoded_id`, (eg `slugged_id` was removed). ## [0.3.1] - 2022-12-15 - Fix default config ## [0.3.0] - 2022-12-15 - Updates gem `encoded_id` dependency and fixes configuration ## [0.2.0] - 2022-12-14 - No notes... ## [0.1.0] - 2022-11-17 - Initial release