class Zold::Upgrades

Class to manage data upgrades (when zold itself upgrades).

Public Class Methods

new(version, directory, opts, log: Log::VERBOSE) click to toggle source
# File lib/zold/upgrades.rb, line 28
def initialize(version, directory, opts, log: Log::VERBOSE)
  raise 'network can\'t be nil' if opts[:network].nil?
  @version = version
  @directory = directory
  @log = log
  @opts = opts
end

Public Instance Methods

run() click to toggle source
# File lib/zold/upgrades.rb, line 36
def run
  Dir.glob("#{@directory}/*.rb").select { |f| f =~ /^(\d+)\.rb$/ }.sort.each do |script|
    @version.apply(script)
  end
  command = @opts[:command]
  require_relative '../../upgrades/delete_banned_wallets'
  DeleteBannedWallets.new(Dir.pwd, @log).exec
  require_relative '../../upgrades/2'
  UpgradeTo2.new(Dir.pwd, @log).exec
  require_relative '../../upgrades/protocol_up'
  ProtocolUp.new(Dir.pwd, @log).exec
  require_relative '../../upgrades/rename_foreign_wallets'
  RenameForeignWallets.new(Dir.pwd, @opts[:network], @log).exec
  return unless command == 'node'
  require_relative '../../upgrades/move_wallets_into_tree'
  MoveWalletsIntoTree.new(Dir.pwd, @log).exec
end