Module: EncodedToken::Decoder
- Included in:
- EncodedToken
- Defined in:
- lib/encoded_token/decoder.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#decode(id) ⇒ Object
Decode a previously encoded token to return the original ID.
-
#decode!(token) ⇒ Object
Decode a previously encoded token to return the original ID.
Instance Method Details
#decode(id) ⇒ Object
Decode a previously encoded token to return the original ID
- args:
-
token [String]
-
- returns:
-
a String with the original ID
-
- on error:
-
returns
nil
-
examples:
EncodedToken.decode("KY3bnaRGmyy6yJS3imWr1dcWtzDYvZjpIAYyCUo5PEKPFvQgtTTed")
#=> "12345"
EncodedToken.decode("3gDwO7r4UJYeBYDBLU94MqjZQm0SToSE29ACDNcw0xf4QusZKxQHJ")
#=> "12345"
EncodedToken.decode("pAi1SmpKgFAchh76EoLbYLeXVQmLwmMlH2v1zDVeufioKGr0709Qw")
#=> "4ef2091f-023b-4af6-9e9f-f46465f897ba"
EncodedToken.decode("abcdefghijklmnopqrstuvwxyz")
#=> nil
EncodedToken.decode(:test)
#=> nil
90 91 92 93 94 |
# File 'lib/encoded_token/decoder.rb', line 90 def decode(id) decode!(id) rescue nil end |
#decode!(token) ⇒ Object
Decode a previously encoded token to return the original ID
- args:
-
token [String]
-
- returns:
-
a String with the original ID
-
- on error:
-
an invalid String token returns
nil -
otherwise an exception will be raised
-
examples:
EncodedToken.decode!("KY3bnaRGmyy6yJS3imWr1dcWtzDYvZjpIAYyCUo5PEKPFvQgtTTed")
#=> "12345"
EncodedToken.decode!("3gDwO7r4UJYeBYDBLU94MqjZQm0SToSE29ACDNcw0xf4QusZKxQHJ")
#=> "12345"
EncodedToken.decode!("pAi1SmpKgFAchh76EoLbYLeXVQmLwmMlH2v1zDVeufioKGr0709Qw")
#=> "468a5eeb-0cda-4c99-8dba-6a96c33003e0"
EncodedToken.decode!("abcdefghijklmnopqrstuvwxyz")
#=> nil
EncodedToken.decode!(:test)
#=> Token is not a string. (RuntimeError)
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/encoded_token/decoder.rb', line 45 def decode!(token) assert_valid_seed! token = sanitize_token(token) id = parse_token(token) # is it a UUID or numeric ID if valid_integer?(id) || valid_uuid_format?(id) return id else return nil end end |