class Airenv::SdkDescription

Attributes

build[RW]
name[RW]
version[RW]

Public Class Methods

installed_sdks() click to toggle source
# File lib/airenv/sdk_description.rb, line 61
def installed_sdks
  installed_versions.map {|version| Airenv::Sdk.new(version) }
end
installed_versions() click to toggle source
# File lib/airenv/sdk_description.rb, line 69
def installed_versions
  Dir.glob("#{Settings.sdks_directory}/*").map {|f|
    Pathname.new(f).basename.to_s
  }.reject {|basename| basename == 'current' }.map {|basename|
    basename.to_s.gsub("AIRSDK_", '')
  }
end
new(name=nil, version=nil, build=nil) click to toggle source
# File lib/airenv/sdk_description.rb, line 11
def initialize(name=nil, version=nil, build=nil)
  self.name = name
  self.version = version
  self.build = build
end
normalize_version_id(version_id) click to toggle source
# File lib/airenv/sdk_description.rb, line 47
def normalize_version_id(version_id)
  if simple_version?(version_id)
    installed_sdks.select {|sdk|
      sdk.simple_version == version_id
    }.sort.last.description.id
  else
    version_id
  end
end
simple_version?(version_id) click to toggle source
# File lib/airenv/sdk_description.rb, line 65
def simple_version?(version_id)
  not version_id.include?("-b")
end
usable?(version_id) click to toggle source
# File lib/airenv/sdk_description.rb, line 57
def usable?(version_id)
  installed_sdks.map {|sdk| [sdk.description.id, sdk.simple_version] }.flatten.include? version_id
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/airenv/sdk_description.rb, line 37
def <=>(other)
  result = self.version <=> other.version
  if result == 0
    self.build <=> other.build
  else
    result
  end
end
digest() click to toggle source
# File lib/airenv/sdk_description.rb, line 33
def digest
  Digest::MD5.digest(id)
end
id() click to toggle source
# File lib/airenv/sdk_description.rb, line 29
def id
  "#{version}-b#{build}"
end
load(xml) click to toggle source
# File lib/airenv/sdk_description.rb, line 17
def load(xml)
  @doc = parse(xml)
  root = @doc.elements['air-sdk-description']
  self.name = root.elements['name'].text
  self.version = root.elements['version'].text
  self.build = root.elements['build'].text.to_i
end
parse(xml) click to toggle source
# File lib/airenv/sdk_description.rb, line 25
def parse(xml)
  REXML::Document.new xml
end