Skip to content

Releases: stevegeek/encoded_id

1.1.0

23 Jan 14:41

Choose a tag to compare

[1.1.0] - 2026-01-23

Added (Rails integration)

Configuration in EncodedId Rails now supports all options from the core library

1.0.0

21 Nov 17:30

Choose a tag to compare

First stable release!

Important!!: :sqids are not compatible with :hashids, DO NOT CHANGE FROM ONE TO THE OTHER AFTER GOING LIVE.

Fixed (Rails integration)
Ensure finder methods correctly override their ActiveRecord counterparts
Warn when ActiveRecord integration used in model that doesn't use id as primary key

v1.0.0.rc7

20 Nov 12:27

Choose a tag to compare

v1.0.0.rc7 Pre-release
Pre-release

1.0.0.rc7

Breaking changes

  • ReversibleId now no longer downcases the encodedid input string by default on decode, ie the decode option downcase is now false. This can be configured via the Rails configuration downcase_on_decode option. In a future release the downcase option will be removed.
  • The default encoding engine is now :sqids to reflect the official "deprecated" status of Hashids (see https://sqids.org/faq#why-hashids)
  • Ruby < 3.2 support dropped. The minimum supported Ruby version is now 3.2.0
  • Encoders classes no longer expose encode_hex and decode_hex as they worked differently to the similarly named methods on ReversibleId
  • Rails generator now needs you to specify which encoding algorithm you are using

Added (Rails integration)

  • encoded_id_options class method to override encoded_id configuration on a model by model basis
  • Blocklist application "modes". User can decide if the blocklist checks should be applied in situations
    where very long encoded IDs are likely and hence block word collisions are undesirably likely.

Changed

  • Blocklists are now pre-filtered to the encoder alphabet to avoid testing words which cannot be created by that alphabet anyway.
  • Updates to inline RBS type signatures
  • Documentation updates

1.0.0.rc6

17 Nov 12:50

Choose a tag to compare

1.0.0.rc6 Pre-release
Pre-release
v1.0.0.rc6

1.0.0.rc6

v1.0.0.rc5

09 Apr 13:29

Choose a tag to compare

v1.0.0.rc5 Pre-release
Pre-release
  • encoded_id now uses its own implementation of hashids which is more efficient and has a smaller memory footprint. This massively reduces the GC churn in high-throughput applications. This is an implementation based on the original hashids gem but with many optimisations and improvements. Functionally it is identical to the original hashids gem.

1.0.0.rc4

29 Apr 16:24

Choose a tag to compare

1.0.0.rc4 Pre-release
Pre-release

[1.0.0.rc4] - 2024-04-29

  • Add an optional max_inputs_per_id argument to ReversibleId, thanks to @avcwisesa
  • The option split_with: can also now be set to nil to disable splitting of the encoded ID string

v1.0.0.rc3

23 Oct 05:07

Choose a tag to compare

v1.0.0.rc3 Pre-release
Pre-release
  • Add an optional max_length argument to ReversibleId, thanks to @jugglebird
  • Alphabet validations to prevent whitespace and null chars
  • Add Alphabet#to_a, Alphabet#to_s, Alphabet#size and a custom Alphabet#inspect
  • Fixes to input validations
  • hashids are case-sensitive, as are Alphabets, however ReversibleId was always downcaseing the encodedid input string on decode. A new option has been added to decode and decode_hex, downcase, which defaults to true. Thus, the default behaviour is unchanged, but you can opt out to allow mixed case encodedid decode. Note: In V2 this will default to false.

1.0.0.rc1

07 Aug 19:35

Choose a tag to compare

1.0.0.rc1 Pre-release
Pre-release
1.0.0.rc1

v0.4.0

04 Dec 17:18

Choose a tag to compare

v0.4.0 Pre-release
Pre-release

Changes to how alphabets are specified

v0.0.3

17 Nov 14:34

Choose a tag to compare

v0.0.3 Pre-release
Pre-release

First alpha