class Airenv::Sdk

Attributes

description[RW]

Public Class Methods

new(version_id=nil) click to toggle source
# File lib/airenv/sdk.rb, line 14
def initialize(version_id=nil)
  self.description = Airenv::SdkDescription.new
  parse_version_id(version_id) if version_id.present?
  parse_sdk_description if archive_extracted?
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/airenv/sdk.rb, line 125
def <=>(other)
  self.description <=> other.description
end
archive_extracted?() click to toggle source
# File lib/airenv/sdk.rb, line 76
def archive_extracted?
  File.exists?(extracted_dir)
end
current?() click to toggle source
# File lib/airenv/sdk.rb, line 121
def current?
  description.id == current_sdk_description.id
end
current_sdk_description() click to toggle source
# File lib/airenv/sdk.rb, line 110
def current_sdk_description
  description = Airenv::SdkDescription.new
  description.load File.read("#{Settings.current_sdk_symlink_path}/air-sdk-description.xml")
  description
end
download() click to toggle source
# File lib/airenv/sdk.rb, line 50
def download
  downloader = Airenv::Downloader.new(package_uri, simple_name)
  if downloader.archive_exists?
    puts "Skipped downloading because the archive exists."
  else
    downloader.start
  end
end
extract_archive() click to toggle source
# File lib/airenv/sdk.rb, line 67
def extract_archive
  FileUtils.mkdir_p(temporary_extracted_dir)
  system("tar zxf #{Shellwords.escape(Settings.temporary_sdk_file_path(simple_name))} -C #{temporary_extracted_dir}")
end
extracted_dir() click to toggle source
# File lib/airenv/sdk.rb, line 59
def extracted_dir
  "#{Settings.sdks_directory}/#{package_name}"
end
fetch() click to toggle source
# File lib/airenv/sdk.rb, line 41
def fetch
  puts "Downloading..."
  download
  puts "Archive extracting..."
  extract_archive
  parse_sdk_description_from_temporary_sdk
  move_to_sdks_directory
end
move_to_sdks_directory() click to toggle source
# File lib/airenv/sdk.rb, line 100
def move_to_sdks_directory
  FileUtils.rm_r(extracted_dir) if Dir.exists?(extracted_dir)
  FileUtils.mkdir_p(Settings.sdks_directory)
  File.rename(temporary_extracted_dir, extracted_dir)
end
package_name() click to toggle source
# File lib/airenv/sdk.rb, line 33
def package_name
  "AIRSDK_#{description.id}"
end
package_uri() click to toggle source
# File lib/airenv/sdk.rb, line 25
def package_uri
 "http://airdownload.adobe.com/air/mac/download/#{simple_version}/AIRSDK_Compiler.tbz2"
end
parse_sdk_description() click to toggle source
# File lib/airenv/sdk.rb, line 84
def parse_sdk_description
  self.description.load(sdk_description_xml)
end
parse_sdk_description_from_temporary_sdk() click to toggle source
# File lib/airenv/sdk.rb, line 96
def parse_sdk_description_from_temporary_sdk
  self.description.load(temporary_sdk_description_xml)
end
parse_version_id(version_id) click to toggle source
# File lib/airenv/sdk.rb, line 20
def parse_version_id(version_id)
  self.description.version, build = *version_id.split('-b')
  self.description.build = build.to_i if build.present?
end
sdk_description_xml() click to toggle source
# File lib/airenv/sdk.rb, line 80
def sdk_description_xml
  File.read("#{sdk_description_xml_path}")
end
sdk_description_xml_path() click to toggle source
# File lib/airenv/sdk.rb, line 72
def sdk_description_xml_path
  "#{extracted_dir}/air-sdk-description.xml"
end
simple_name() click to toggle source
# File lib/airenv/sdk.rb, line 37
def simple_name
  "AIRSDK_#{simple_version}"
end
simple_version() click to toggle source
# File lib/airenv/sdk.rb, line 29
def simple_version
  description.version.split('.')[0..1].join('.')
end
temporary_extracted_dir() click to toggle source
# File lib/airenv/sdk.rb, line 63
def temporary_extracted_dir
  "#{Settings.temporary_sdk_file_extracted_directory}"
end
temporary_sdk_description_xml() click to toggle source
# File lib/airenv/sdk.rb, line 92
def temporary_sdk_description_xml
  File.read("#{temporary_sdk_description_xml_path}")
end
temporary_sdk_description_xml_path() click to toggle source
# File lib/airenv/sdk.rb, line 88
def temporary_sdk_description_xml_path
  "#{temporary_extracted_dir}/air-sdk-description.xml"
end
use() click to toggle source
# File lib/airenv/sdk.rb, line 116
def use
  File.delete(Settings.current_sdk_symlink_path) if current_sdk_symlink_exists?
  File.symlink(extracted_dir, Settings.current_sdk_symlink_path)
end