Method: When::TimeStandard._setup_

Defined in:
lib/when_exe/timestandard.rb

._setup_(leap_seconds = nil) ⇒ void

Note:

本メソッドでマルチスレッド対応の管理変数の初期化を行っている。このため、本メソッド自体はスレッドセーフでない。

This method returns an undefined value.

When::TimeStandard Module のグローバルな設定を行う

Parameters:

  • leap_seconds (String) (defaults to: nil)

    maia.usno.navy.mil/ser7/tai-utc.dat 形式のファイルのファイルパス

  • leap_seconds (Array<Array<Numeric>>) (defaults to: nil)

    閏秒の挿入記録 [ [ JD, TAI-UTC, (MJD, OFFSET) ] ]

    JD - 閏秒を挿入した日時のユリウス日
    TAI-UTC - 閏秒を挿入後の TAI と UTC の差
    MJD - 周波数オフセットの基準となる日時の修正ユリウス日
    OFFSET - 周波数オフセット値


79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/when_exe/timestandard.rb', line 79

def _setup_(leap_seconds=nil)
  @_lock_ = Mutex.new if When.multi_thread
  leap_seconds ||= TAI_UTC
  @leap_seconds  =
    if leap_seconds.kind_of?(String)
      OpenURI
      open(leap_seconds) do |file|
        file.read.split(/[\n\r]+/).map { |line|
          line.split(/[^\d.]+/)[3..6].map {|d| d.to_f}
        }.reverse
      end
    else
      leap_seconds.reverse
    end
end