Clear old instances out via `#reset`

This commit is contained in:
Netscape Navigator 2019-12-27 22:44:10 -06:00
parent 52b902b935
commit 61460a4ae5
3 changed files with 23 additions and 0 deletions

View File

@ -11,6 +11,10 @@ module Pigeon
[HEADER, urlsafe_b64_no_headers, FOOTER].join("")
end
def self.reset
@current = nil
end
def self.current
if @current
@current

View File

@ -2,6 +2,11 @@ require "pstore"
module Pigeon
class Storage
def self.reset
@current.implode if @current
@current = nil
end
def self.current
@current ||= self.new
end
@ -96,6 +101,14 @@ module Pigeon
end
end
def implode
@store.transaction do
@store.roots.map do |x|
store.delete(x)
end
end
end
private
def store

View File

@ -11,6 +11,8 @@ RSpec.describe Pigeon::Message do
end
it "signs a message" do
Pigeon::Storage.reset
Pigeon::KeyPair.reset
m1 = message
message2 = Pigeon::Message.create(kind: "unit_test")
message2.append("expected_sequence", "1")
@ -34,6 +36,8 @@ RSpec.describe Pigeon::Message do
].join("\n")
it "renders a first message" do
Pigeon::Storage.reset
Pigeon::KeyPair.reset
pk = Pigeon::KeyPair.current.public_key
actual = message.render
expected = MSG.gsub("___", pk)
@ -41,6 +45,8 @@ RSpec.describe Pigeon::Message do
end
it "creates a new message" do
Pigeon::Storage.reset
Pigeon::KeyPair.reset
message = Pigeon::Message.create(kind: "unit_test")
hash = Pigeon::Storage.current.set_blob(File.read("./logo.png"))
expectations = {