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:



1827
1828
1829
1830
1831
1832
1833
# File 'lib/when_exe/coordinates.rb', line 1827

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)
end

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

Pairのindex化

Parameters:

  • date (Array<Numeric>)

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

Returns:



1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
# File 'lib/when_exe/coordinates.rb', line 1842

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
end