A bottom spec implementation in Crystal
The spec can be found at https://github.com/bottom-software-foundation/spec
Just download bottom.cr and add it to your project or w/e
require "path/to/bottom.cr"
puts Bottom.encode("Hello")
# Output: 💖✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈
puts Bottom.decode("💖✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈")
# Output: HelloValidates and decodes the given string. Raises an
ArgumentErrorif string is not a valid bottom-encoded string or the string is not valid a valid UTF8 string.Example:
Valid:
puts Bottom.decode("💖✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈") # Output: HelloInvalid:
puts Bottom.decode("Hello") # Output: ArgumentErrorReturns
String
Encodes string as per the bottom spec. Raises an
ArgumentErrorif the string is not a valid UTF8 string.Example:
puts Bottom.encode("Hello") # Output: 💖✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈Returns
String
Validates the given
Stringinstance. Raises anArgumentErrorif string is not a valid bottom-encoded string or the string is not valid a valid UTF8 string.Example:
Valid:
puts Bottom.verify_bottom("💖✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈") # Output: nilInvalid:
puts Bottom.verify_bottom("Hello") # Output: ArgumentErrorReturns
nil
- arHSM - creator and maintainer