Skip to content
This repository was archived by the owner on Apr 22, 2025. It is now read-only.

V1.0.0.rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@stevegeek stevegeek released this 09 Apr 22:24
· 1 commit to main since this release

[1.0.0] - (in beta)

Breaking changes

  • Ruby < 3.2 support dropped. The minimum supported Ruby version is now 3.2.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

  • New EncodedId::Rails::Persists module which adds hooks to the model to persist the encoded ID to the DB (see docs).
  • #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.
  • Configuration#model_to_param_returns_encoded_id to allow EncodedId::Rails::Model inclusion to also bring in
    EncodedId::Rails::PathParam automatically.

Fixed

  • #decode_encoded_id now raises if the encoded ID is not a string.
  • Handle more cases where a record held onto a memoized encoded_id even though its id had changed