Module: ActiveRecord::ObscuredId

Extended by:
ActiveSupport::Concern
Defined in:
lib/activerecord-obscuredid.rb,
lib/activerecord-obscuredid/base32.rb,
lib/activerecord-obscuredid/version.rb,
lib/activerecord-obscuredid/configuration.rb,
lib/activerecord-obscuredid/extensions/email_address.rb

Overview

Active Record Obscured Id

Defined Under Namespace

Modules: Base32, ClassMethods, Extensions Classes: Configuration

Constant Summary collapse

VERSION =
'0.2.0'

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.config ⇒ Object



19
20
21
# File 'lib/activerecord-obscuredid/configuration.rb', line 19

def config
  @config ||= Configuration.new
end

Class Method Details

.configure {|config| ... } ⇒ Object

Yields:



23
24
25
# File 'lib/activerecord-obscuredid/configuration.rb', line 23

def configure
  yield(config)
end

Instance Method Details

#obscured_id ⇒ String

Generates an obscured representation of the record's ID.

This method encodes the ID of the current record using a Base32 encoding scheme. The resulting obscured ID is a down-cased string that does not directly reveal the actual ID, making it suitable for public references (e.g., in URLs or emails). It is case-insensitive making it ideal for use cases like constructing email addresses or URLs, where case sensitivity might be an issue.

Examples:

user = User.find(7371)
user.obscured_id
# => "g4ztomi" (an example Base32 encoded version of the ID)

Returns:

  • (String) —

    A down-cased Base32-encoded string representing the record's ID.



59
# File 'lib/activerecord-obscuredid.rb', line 59

def obscured_id = Base32.encode(id.to_s).downcase