Module: EncodedToken::Encoder

Included in:
EncodedToken
Defined in:
lib/encoded_token/encoder.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#encode(id) ⇒ Object

Generates a Secure Token from the given ID

args:
  • id [Integer, String] - the ID or UUID to encode

    • eg. 12345, “12345”, “468a5eeb-0cda-4c99-8dba-6a96c33003e0”

returns:
  • a web-safe, variable length String of alphanumeric characters

on error:
  • raises an ArgumentError

examples:

EncodedToken.encode(12345)
# => "KY3bnaRGmyy6yJS3imWr1dcWtzDYvZjpIAYyCUo5PEKPFvQgtTTed"

EncodedToken.encode("12345")
# => "3gDwO7r4UJYeBYDBLU94MqjZQm0SToSE29ACDNcw0xf4QusZKxQHJ"

EncodedToken.encode("468a5eeb-0cda-4c99-8dba-6a96c33003e0")
# =>  "pAi1SmpKgFAchh76EoLbYLeXVQmLwmMlH2v1zDVeufioKGr0709Qw"

EncodedToken.encode(:test)
# =>  EncodedToken: :id must be an Integer, a String integer or a String UUID. (RuntimeError)


77
78
79
80
81
# File 'lib/encoded_token/encoder.rb', line 77

def encode(id)
  encode!(id)
rescue ArgumentError
  fail_with_invalid_id_argument
end

#encode!(id) ⇒ Object

Generates a Secure Token from the given ID

args:
  • id [Integer, String] - the ID or UUID to encode

  • eg. 12345, “12345”, “468a5eeb-0cda-4c99-8dba-6a96c33003e0”

returns:
  • a web-safe, variable length String of alphanumeric characters

on error:
  • raises an exception based on the error

examples:

EncodedToken.encode!(12345)
# => "KY3bnaRGmyy6yJS3imWr1dcWtzDYvZjpIAYyCUo5PEKPFvQgtTTed"

EncodedToken.encode!("12345")
# => "3gDwO7r4UJYeBYDBLU94MqjZQm0SToSE29ACDNcw0xf4QusZKxQHJ"

EncodedToken.encode!("468a5eeb-0cda-4c99-8dba-6a96c33003e0")
# =>  "pAi1SmpKgFAchh76EoLbYLeXVQmLwmMlH2v1zDVeufioKGr0709Qw"

EncodedToken.encode!(:test)
# =>  EncodedToken: :id must be an Integer, a String integer or a String UUID. (RuntimeError)


41
42
43
44
45
# File 'lib/encoded_token/encoder.rb', line 41

def encode!(id)
  assert_valid_seed!
  assert_valid_id!(id)
  generate_token(id)
end