Module: When::Coordinates::Temporal::IndexConversion

Defined in:
lib/when_exe/coordinates.rb

Instance Method Summary collapse

Instance Method Details

#_from_index(date) ⇒ When::Coordinates::Pair

indexのPair化

Parameters:

  • date (Array<Numeric>)

    最下位が index になっている日時要素

Returns:



1910
1911
1912
1913
1914
1915
1916
1917
1918
# File 'lib/when_exe/coordinates.rb', line 1910

def _from_index(date)
  return nil unless @pair[date.size-1]
  ids = _ids(date[0..-2])
  m   = ids[date[-1]] if (ids)
  return Pair._force_pair(m) if (ids && m)
  return Pair.new(+date[-1]+@base[date.length-1], 0)
rescue ArgumentError
  nil
end

#_to_index(date) ⇒ When::Coordinates::Pair

Pairのindex化

Parameters:

  • date (Array<Numeric>)

    最下位が When::Coordinates::Pair になっている日時要素

Returns:



1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
# File 'lib/when_exe/coordinates.rb', line 1927

def _to_index(date)
  return nil unless @pair[date.size-1]
  ids = _ids(date[0..-2])
  i   = ids.index(date[-1]) if ids
  return i if i
  return nil unless ids && date[-1].kind_of?(Pair)
  digit = Pair.new(date[-1].trunk, date[-1].branch)
  while digit.branch > 0
    digit.branch -= 1
    i = ids.index(digit)
    return i + date[-1].branch - digit.branch if i
  end
  return nil
rescue ArgumentError
  nil
end