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
current_sdk_symlink_exists?()
click to toggle source
# File lib/airenv/sdk.rb, line 106 def current_sdk_symlink_exists? File.exists?(Settings.current_sdk_symlink_path) 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