Class: AndroidCLI

Inherits:
Object
  • Object
show all
Defined in:
lib/android-cli.rb

Overview

Finds Android SDK ID

Author:

Constant Summary collapse

@@sdkPath =
nil

Class Method Summary collapse

Class Method Details

.getCMDObject



24
25
26
27
# File 'lib/android-cli.rb', line 24

def self.getCMD
  raise "Android not installed" unless installed?
  return "#{getSDKPath}/android"
end

.getSDKPathObject



13
14
15
16
# File 'lib/android-cli.rb', line 13

def self.getSDKPath
  return File.dirname(`which android`.strip) if @@sdkPath.nil?
  @@sdkPath
end

.installed?Boolean

Determines if android is installed

Returns:

  • (Boolean)

    BOOLEAN



20
21
22
# File 'lib/android-cli.rb', line 20

def self.installed?
  return system("which #{getSDKPath}/android")
end

.listTargetsObject

Runs`android list targets`

Returns:

  • STDOUT ‘android list targets`



32
33
34
# File 'lib/android-cli.rb', line 32

def self.listTargets
  `#{getCMD} list targets`
end

.searchTargets(targetString) ⇒ Integer?

Determines the Android SDK ID

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

Parameters:

  • target (String)

    human-readable string

Returns:

  • (Integer, nil)

    The android target id or nil if none could be found



43
44
45
46
47
48
49
50
# 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) ⇒ Object



9
10
11
# File 'lib/android-cli.rb', line 9

def self.setSDKPath(path)
  @@sdkPath = path
end

.updateProject(targetId) ⇒ Boolean

Runs ‘android update project`

Parameters:

  • target (Integer)

    target ID from android list targets

Returns:

  • (Boolean)

    did it update the project successfully



56
57
58
# File 'lib/android-cli.rb', line 56

def self.updateProject(targetId)
  system("#{getCMD} update project -p . --subprojects  --target #{targetId}")
end

.updateProjectFromString(targetStr) ⇒ Boolean

Updates a project based in a human readable target

Parameters:

  • target (String)

    target string from android list targets

Returns:

  • (Boolean)

    did it update the project successfully



64
65
66
67
68
69
70
71
# 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