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