class Version

Attributes

base_version[R]
hmcBuildLevel[R]
patches[R]
patches_raw[R]
release[R]
servicePack[R]
version[R]

Public Class Methods

new(string = '') click to toggle source
# File lib/HMC/Version.rb, line 11
def initialize(string = '')

  @patches = {}
  parse(string) unless string.empty?
end

Public Instance Methods

hasFix?(fix_name) click to toggle source
# File lib/HMC/Version.rb, line 76
def hasFix?(fix_name)
  @patches.key?(fix_name)
end
parse(string) click to toggle source
# File lib/HMC/Version.rb, line 17
  def parse(string)

    regexp_all = %r{Version:\s(\d)\s+
\s+Release:\s+(\d\.\d\.\d)\s+
\s+Service\sPack:\s+(\d+)\s+
\s+HMC\sBuild\slevel\s([\d\.]+)\s*
(.*)\s*\"\,\"base_version=(V\dR\d\.\d\.\d)\s+
\s+\"}x

    regexp = %r{Version:\s(\d)\s+
\s+Release:\s+(\d\.\d\.\d)\s+
\s+Service\sPack:\s+(\d+)\s+
HMC\sBuild\slevel\s([\d\.]+)\s*
(.*)\s*
\"\,\"base_version=(V\dR\d\.\d\.\d)\s+
}x


    match = regexp.match(string)

    if match
      @version = match[1]
      @release  = match[2]
      @servicePack = match[3]
      @hmcBuildLevel    = match[4]
      @patches_raw      = match[5]
      @base_version = match[6]

      parse_patches(@patches_raw) unless @patches_raw.empty?

    else
      puts string
      puts regexp
      puts match
      puts "regexp couldn't decode string #{string}"
      raise

    end
  end
parse_patches(string) click to toggle source
# File lib/HMC/Version.rb, line 57
def parse_patches(string)

  regexp = %r{(MH\d{5})\:(.*)}
  match = regexp.match(string)

  if match
    version        = match[1]
    description        = match[2]
    @patches[version] = description
  else
    puts string
    puts regexp
    puts match
    puts "regexp couldn't decode string #{string}"
    raise
  end

end
version_cmd() click to toggle source
# File lib/HMC/Version.rb, line 80
def version_cmd
  'lshmc -V'
end