Class: CFME::Versions

Inherits:
Object
  • Object
show all
Extended by:
Enumerable
Defined in:
lib/cfme-versions.rb

Constant Summary collapse

FIELDS =
[
     "ManageIQ",      "",       "CFME",  "CloudForms", "CP4MCM", "Ruby", "Rails", "PostgreSQL"
].freeze
VERSIONS =
[
  %w[ N/A             N/A        5.1.z    2.0           N/A       N/A     N/A      N/A        ],
  %w[ N/A             N/A        5.2.z    3.0           N/A       N/A     N/A      N/A        ],
  %w[ Anand           1.y.z      5.3.z    3.1           N/A       N/A     N/A      N/A        ],
  %w[ Botvinnik       2.y.z      5.4.z    3.2           N/A       N/A     N/A      N/A        ],
  %w[ Capablanca      3.y.z      5.5.z    4.0           N/A       2.2.z   4.2.z    9.4.z      ],
  %w[ Darga           4.y.z      5.6.z    4.1           N/A       2.2.z   5.0.z    9.4.z      ],
  %w[ Euwe            5.y.z      5.7.z    4.2           N/A       2.3.z   5.0.z    9.5.z      ],
  %w[ Fine            6.y.z      5.8.z    4.5           N/A       2.3.z   5.0.z    9.5.z      ],
  %w[ Gaprindashvili  7.y.z      5.9.z    4.6           N/A       2.3.z   5.0.z    9.5.z      ],
  %w[ Hammer          8.y.z      5.10.z   4.7           N/A       2.4.z   5.0.z    9.5.z      ],
  %w[ Ivanchuk        9.y.z      5.11.z   5.0           1.2,1.3   2.5.z   5.1.z    10.y       ],
  %w[ Jansa           10.y.z     N/A      N/A           2.0       2.5.z   5.2.z    10.y       ],
  %w[ Kasparov        11.y.z     N/A      N/A           N/A       2.6.z   5.2.z    10.y       ]
].freeze

Class Method Summary collapse

Class Method Details

.[](index) ⇒ Object



68
69
70
# File 'lib/cfme-versions.rb', line 68

def [](index)
  versions[index]
end

.eachObject



60
61
62
# File 'lib/cfme-versions.rb', line 60

def each
  versions.each { |version| yield version }
end

.lastObject



64
65
66
# File 'lib/cfme-versions.rb', line 64

def last
  versions.last
end


86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/cfme-versions.rb', line 86

def print_help
  puts <<~HELP
    usage:  cfme-versions [OPTION]...

    Options:

        --version     Prints the version number and exits
        --help        This help

  HELP
  exit
end


99
100
101
102
103
104
105
106
107
108
109
# File 'lib/cfme-versions.rb', line 99

def print_table
  # Print Header
  puts printable_row(FIELDS)
  puts printable_row(spacings.map { |size| "-" * size })

  # Print version data
  raw_data.each do |version|
    version_data = version.map { |column| column == "N/A" ? "" : column } # remove N/A values
    puts printable_row(version_data)
  end
end


111
112
113
114
# File 'lib/cfme-versions.rb', line 111

def print_version
  puts CFME::Versions.version
  exit
end

.raw_dataObject



82
83
84
# File 'lib/cfme-versions.rb', line 82

def raw_data
  @raw_data ||= VERSIONS.dup
end

.run(argv = ARGV) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/cfme-versions.rb', line 46

def run(argv = ARGV)
  until argv.empty?
    arg = argv.shift

    # The `return` statements are there for specs
    case arg
    when "--version"  then return print_version
    when "--help"     then return print_help
    end
  end

  CFME::Versions.print_table
end

.versionObject

Version of this gem/tool



73
74
75
76
# File 'lib/cfme-versions.rb', line 73

def version
  numbers = versions.last.miq_semver.split(".").select { |val| val =~ /^\d+$/ } + %w[0 0 0]
  numbers.first(3).join(".")
end

.versionsObject



78
79
80
# File 'lib/cfme-versions.rb', line 78

def versions
  @versions ||= raw_data.map { |data| Version.new(*data) }
end