class MutatorRails::Guide

Constants

SEP

Attributes

guides[R]

Public Class Methods

new(*) click to toggle source
# File lib/mutator_rails/guide.rb, line 10
def initialize(*)
  preset_file
end

Public Instance Methods

current?(log, code_md5, spec_md5) click to toggle source
# File lib/mutator_rails/guide.rb, line 14
def current?(log, code_md5, spec_md5)
  # p guides[log]
  File.exist?(log) &&
    File.size(log).positive? &&
    log_exists?(log) &&
    guides[log].eql?([code_md5, spec_md5, MUTANT_VERSION])
end
log_exists?(log) click to toggle source
# File lib/mutator_rails/guide.rb, line 27
def log_exists?(log)
  guides[log].present?
end
remove(log) click to toggle source
# File lib/mutator_rails/guide.rb, line 31
def remove(log)
  guides.delete(log)
  recreate
end
update(log, code_md5, spec_md5) click to toggle source
# File lib/mutator_rails/guide.rb, line 22
def update(log, code_md5, spec_md5)
  guides[log] = [code_md5, spec_md5, MUTANT_VERSION]
  recreate
end

Private Instance Methods

create_guide_file() click to toggle source
# File lib/mutator_rails/guide.rb, line 60
def create_guide_file
  puts ".. creating guide file #{guide_file_name}"
  File.open(guide_file_name, "w+")
end
guide_file_name() click to toggle source
# File lib/mutator_rails/guide.rb, line 65
def guide_file_name
  Pathname(Dir.pwd).join(MutatorRails::Config.configuration.guide_file).tap do |p|
    FileUtils.mkdir_p(p.dirname)
  end
end
load() click to toggle source
# File lib/mutator_rails/guide.rb, line 44
def load
  @guides = {}
  File.readlines(guide_file_name).each do |line|
    log, code_md5, spec_md5, mutant_version = line.strip.split(SEP)
    guides[log]                             = [code_md5, spec_md5, mutant_version]
  end
end
preset_file() click to toggle source
# File lib/mutator_rails/guide.rb, line 38
def preset_file
  create_guide_file unless File.exist?(guide_file_name)

  load
end
recreate() click to toggle source
# File lib/mutator_rails/guide.rb, line 52
def recreate
  f = File.open(guide_file_name, 'w')
  guides.sort.each do |k, v|
    f.puts ("#{k}#{SEP}#{v.join(SEP)}") if k.present?
  end
  f.close
end