From b77a2cd27a5969c99371a14df3de5fa0d8c3a080 Mon Sep 17 00:00:00 2001 From: Kuba Suder Date: Sun, 4 Jun 2023 01:48:44 +0200 Subject: [PATCH] parsing CIDs from the string form --- lib/skyfall/cid.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/skyfall/cid.rb b/lib/skyfall/cid.rb index f8d69ce..e16d075 100644 --- a/lib/skyfall/cid.rb +++ b/lib/skyfall/cid.rb @@ -16,6 +16,14 @@ module Skyfall CID.new(data[1..-1]) end + def self.from_json(string) + raise DecodeError.new("Unexpected CID length") unless string.length == 59 + raise DecodeError.new("Unexpected CID prefix") unless string[0] == 'b' + + data = Base32.decode(string[1..-1].upcase) + CID.new(data) + end + def initialize(data) @data = data end -- 2.51.2