class MkSummary

Public Class Methods

new(tmp_dir) click to toggle source
# File lib/shunkuntype/mk_summary.rb, line 2
def initialize(tmp_dir)
  $mem_dir=File.join(tmp_dir,"mem_data")
  files = Dir::entries($mem_dir)
  member = mk_member(files)
  @scores = take_scores(files,member)
end

Public Instance Methods

mk_hiki_table() click to toggle source
# File lib/shunkuntype/mk_summary.rb, line 63
def mk_hiki_table()
  t= Time.now
  cont = "!!Shunkun typer #{t.localtime}\n"
  cont << "|| ||>speed[sec]||>training\n"
  cont << "||||init||current||total time[min]||step\n"
  @scores.each_pair{|key,score|
    cont << "||#{key}"
    score.each{|val| cont << sprintf("||%5.2f",val)}
    cont << "\n"
  }
  cont << "\n"
  return cont
end
mk_html_table() click to toggle source
# File lib/shunkuntype/mk_summary.rb, line 48
def mk_html_table()
  cont = ""
  title = "Shunkun typer"
  cont << "<table border=\"1\">\n<caption>#{title}<caption>\n"
  cont << "<tr><th></th><th colspan=2>speed[sec]</th><th colspan=2>training</th></tr>\n"
  cont << "<tr><th></th><th>init</th><th>current</th><th>total time[min]</th><th>step</th></tr>\n"
  @scores.each_pair{|key,score|
    cont << "<tr><th>#{key}</th>"
    score.each{|val| cont << sprintf("<td>%5.2f</td>",val)}
    cont << "</tr>\n"
  }
  cont << "</table>\n"
  return cont
end
mk_member(files) click to toggle source
# File lib/shunkuntype/mk_summary.rb, line 9
def mk_member(files)
  member = []
  files.each{|file|
    if file.include?('training') then
      name=file.split('_')[0]
      member << name
    end
  }
  return member
end
take_scores(files,member) click to toggle source
# File lib/shunkuntype/mk_summary.rb, line 20
def take_scores(files,member)
  scores = {}
  member.each{|name|
    p name
    speed_file="#{name}_speed_data.txt"
    if files.include?(speed_file)
      p speed_file
      file = File.readlines(File.join($mem_dir,speed_file))
      init= (file[0]!=nil ? file[0].split(",")[2].to_f : 0.0 )
      cur = (file[-1]!=nil ? file[-1].split(",")[2].to_f : 0.0 )
      scores[name]=[init,cur]
    end
    training_file="#{name}_training_data.txt"
    if files.include?(training_file)
      p training_file
      file = File.readlines(File.join($mem_dir,training_file))
      work_time = file.inject(0){|sum,line|
        sec=line.split(',')[3].to_i
        sec= (sec!=0)? sec : 60
        sum + sec
      }
      step = (file[-1]!=nil ? file[-1].match(/STEP-(\d*)/)[1].to_i : 0 )
      scores[name] << work_time/60 << step
    end
  }
  return scores
end