class TokenChain::Emitter
Public Class Methods
new(anchor: nil, passphrase: nil)
click to toggle source
# File lib/token_chain/emitter.rb, line 6 def initialize(anchor: nil, passphrase: nil) @emitter = weigh_anchor(anchor, passphrase) end
Public Instance Methods
next_token!()
click to toggle source
# File lib/token_chain/emitter.rb, line 10 def next_token! anchor = @emitter.anchor previous_token = @emitter.last_consumed_token generator = Generator.new(anchor, previous_token) generator.generate.tap do |token| @emitter.last_consumed_token = token @emitter.save end end
Private Instance Methods
weigh_anchor(anchor, passphrase)
click to toggle source
# File lib/token_chain/emitter.rb, line 23 def weigh_anchor(anchor, passphrase) unless anchor || passphrase raise ArgumentError.new("You must provide an anchor or a passphrase.") end anchor = anchor || Anchor.from(passphrase) EmittableToken.find(anchor) || EmittableToken.create(anchor) end