From 779f9d461600ae2234d6a4d4b511fe406ccb3d29 Mon Sep 17 00:00:00 2001 From: LeMarsu Date: Mon, 30 Sep 2019 01:50:20 +0200 Subject: [PATCH] feat: add #inspect(io : IO) --- spec/ulid_spec.cr | 9 +++++++++ src/ulid.cr | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/spec/ulid_spec.cr b/spec/ulid_spec.cr index 9a9a74a..c98f754 100644 --- a/spec/ulid_spec.cr +++ b/spec/ulid_spec.cr @@ -62,6 +62,15 @@ describe Ulid::ULID do ulid.to_s.should eq "CNK6ET39D9NPRVBEDXR72WKKEG" end + it "should return a custom inspect value" do + bytes = array_slice [ + 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + ] of UInt8 + ulid = Ulid::ULID.new(bytes) + ulid.inspect.should eq "#" + end + it "should instantiate from a string" do ulid = Ulid::ULID.new "CNK6ET39D9NPRVBEDXR72WKKEG" ulid.to_s.should eq "CNK6ET39D9NPRVBEDXR72WKKEG" diff --git a/src/ulid.cr b/src/ulid.cr index d75cc01..cf6bcc4 100644 --- a/src/ulid.cr +++ b/src/ulid.cr @@ -44,8 +44,14 @@ module Ulid initialize(Base32.decode(str, Base32::Crockford)) end - def to_s : String - Base32.encode(@bytes, Base32::Crockford) + def to_s(io : IO) : Void + io << Base32.encode(@bytes, Base32::Crockford) + end + + def inspect(io : IO) : Void + io << "#<" << self.class.name << " " + to_s(io) + io << ">" end def time : Time