Sha256: fc339d2c878092ce6907c37eb6ac22375dfa0aa92b7d683a06f8d3db0feb29c3

Contents?: true

Size: 766 Bytes

Versions: 3

Compression:

Stored size: 766 Bytes

Contents

class Nanook
  class Key

    def initialize(key=nil, rpc)
      @key = key
      @rpc = rpc
    end

    def generate(seed: nil, index: nil)
      if seed.nil? && index.nil?
        rpc(:key_create)
      elsif !seed.nil? && !index.nil?
        rpc(:deterministic_key, seed: seed, index: index)
      else
        raise ArgumentError.new("This method must be called with either seed AND index params given or no params")
      end
    end

    def info
      key_required!
      rpc(:key_expand)
    end

    private

    def rpc(action, params={})
      p = @key.nil? ? {} : { key: @key }
      @rpc.call(action, p.merge(params))
    end

    def key_required!
      if @key.nil?
        raise ArgumentError.new("Key must be present")
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
nanook-0.7.0 lib/nanook/key.rb
nanook-0.6.3 lib/nanook/key.rb
nanook-0.6.0 lib/nanook/key.rb