class AndroidCLI

Finds Android SDK ID

@author Thys Ballard Here <tballard@ishoutout.net>

Public Class Methods

getCMD() click to toggle source
# File lib/android-cli.rb, line 24
def self.getCMD
  raise "Android not installed" unless installed?
  return "#{getSDKPath}/android"
end
getSDKPath() click to toggle source
# File lib/android-cli.rb, line 13
def self.getSDKPath
  return File.dirname(`which android`.strip) if @@sdkPath.nil?
  @@sdkPath
end
installed?() click to toggle source

Determines if android is installed @return BOOLEAN

# File lib/android-cli.rb, line 20
def self.installed?
  return system("which #{getSDKPath}/android")
end
listTargets() click to toggle source

Runs`android list targets`

@return STDOUT ‘android list targets`

# File lib/android-cli.rb, line 32
def self.listTargets
  `#{getCMD} list targets`
end
searchTargets(targetString) click to toggle source

Determines the Android SDK ID

Searches the STDOUT of ‘android list targets` for specified Android target human-readable string

@param [String] target human-readable string @return [Integer, nil] The android target id or nil if none could be found

# File lib/android-cli.rb, line 43
def self.searchTargets(targetString)

  matches = /id: ([0-9]+) or "#{targetString}"/.match(AndroidCLI.listTargets)

  return nil if matches.nil?

  return matches.captures[0].to_i
end
setSDKPath(path) click to toggle source
# File lib/android-cli.rb, line 9
def self.setSDKPath(path)
  @@sdkPath = path
end
updateProject(targetId) click to toggle source

Runs ‘android update project`

@param [Integer] target target ID from android list targets @return [Boolean] did it update the project successfully

# File lib/android-cli.rb, line 56
def self.updateProject(targetId)
  system("#{getCMD} update project -p . --subprojects  --target #{targetId}")
end
updateProjectFromString(targetStr) click to toggle source

Updates a project based in a human readable target

@param [String] target target string from android list targets @return [Boolean] did it update the project successfully

# File lib/android-cli.rb, line 64
def self.updateProjectFromString(targetStr)
  targetId = AndroidCLI.searchTargets(targetStr)

  return false if targetId.nil?

  return AndroidCLI.updateProject(targetId)

end