Module: Alphanumeric

Defined in:
lib/alphanumeric.rb

Constant Summary collapse

LETTERS =

Give every year a letter TODO: should be automatically computed

"abcdefghijklmnopqrstuvwxyz".upcase.split('')
START_YEAR =
1960
YEAR_LETTERS =
{
  2009 => "A",
  2010 => "B",
  2011 => "C",
  2012 => "D",
  2013 => "E",
  2014 => "F",
  2015 => "G",
  2016 => "H",
  2017 => "I",
  2018 => "J",
  2019 => "K",
  2020 => "L",
  2021 => "M",
  2022 => "N",
  2023 => "O",
  2024 => "P",
  2025 => "Q",
  2026 => "R",
  2027 => "S",
  2028 => "T",
  2029 => "U",
  2030 => "V",
  2031 => "W",
  2032 => "X",
  2033 => "Y",
  2034 => "Z",
  2035 => "AA",
  2036 => "BA",
  2037 => "CA",
  2038 => "DA",
  2039 => "EA",
  2040 => "FA",
  2041 => "GA",
  2042 => "HA",
  2043 => "IA",
  2044 => "JA",
  2045 => "KA",
  2046 => "LA",
  2047 => "MA",
  2048 => "NA",
  2049 => "OA",
  2050 => "PA",
}

Class Method Summary collapse

Class Method Details

.year_letter(year = Time.now.year, letters = LETTERS) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/alphanumeric.rb', line 55

def self.year_letter(year=Time.now.year, letters = LETTERS)
  
  steps = []
  
  d = (year - START_YEAR)
  n = d.fdiv(letters.size).ceil
  string = ""
  
  n.times do |i| 
    # First 
    if i == 0
      string << letters[d%letters.size]
    else
      x = d.fdiv(letters.size*(i+1)).round
      string << letters[x]
    end    
  end  
  
  return string
end