Method: When::TM::ClockTime#_time_to_s

Defined in:
lib/when_exe/inspect.rb

#_time_to_s(precision = @precision) ⇒ String

protected

時間帯以外の部分の文字列化

Parameters:

  • precision (Integer) (defaults to: @precision)

    どの桁まで多言語対応文字列化するか、分解能で指定する

Returns:



941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
# File 'lib/when_exe/inspect.rb', line 941

def _time_to_s(precision=@precision)
  terms   = []
  format  = ''
  format += Pair::DL2[@clk_time[0] * 0] || ':' if @frame.pair[0] || @clk_time[0].kind_of?(Pair)

  # 時分
  digits = [@clk_time.length-2, precision].min
  if digits > 0
    terms  += @clk_time[1..-1]
    format += "%02d:" * digits
    format  = format[0..-2] if precision == digits
  end

  # 秒
  digits  = [precision - @clk_time.length + 1, STRING-SECOND].min
  if digits == 0
    format += "%02d"
  elsif digits > 0
    factor  = 10**digits
    terms[-1] = ((@clk_time[-1] + 1E-6) * factor).floor.to_f / factor  # 切り捨て(10で割る丸めガードあり)
    format += "%02.#{digits}f"
  end

  # 結果
  time = Pair._format([format] + terms)
  time.sub(/([^\d])(\d)\./, '\10\2.')
end