Module: Adb::Peco

Defined in:
lib/adb/peco.rb,
lib/adb/peco/version.rb

Constant Summary collapse

AdbUnavailableError =
Class.new(StandardError)
VERSION =
'2.0.3'

Class Method Summary collapse

Class Method Details

.adb_actionObject



36
37
38
# File 'lib/adb/peco.rb', line 36

def self.adb_action
  ARGV.reject{|a| a[0] == '-'}.first
end

.adb_available?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/adb/peco.rb', line 26

def self.adb_available?
  system('which', 'adb', out: File::NULL)
end

.ensure_adb_availableObject



30
31
32
33
34
# File 'lib/adb/peco.rb', line 30

def self.ensure_adb_available
  unless adb_available?
    raise AdbUnavailableError, 'adb command is not available.'
  end
end

.need_serial_option?Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
47
# File 'lib/adb/peco.rb', line 40

def self.need_serial_option?
  !['help',
    'devices',
    'version',
    'start-server',
    'stop-server',
  ].include?(adb_action)
end

.quote(args) ⇒ Object



49
50
51
# File 'lib/adb/peco.rb', line 49

def self.quote(args)
  args.map{|a| a.include?(' ') ? %Q{"#{a}"} : a }
end

.serial_optionObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/adb/peco.rb', line 9

def self.serial_option
  return nil unless adb_action
  return nil unless need_serial_option?

  devices = DeviceAPI::Android.devices
  return nil if devices.size <= 1 || devices.size == 0

  device = PecoSelector.select_from(devices.map{|device|
    ["#{device.model} (#{device.qualifier})", device]
  }).first
  "-s #{device.qualifier}"

rescue PecoSelector::PecoUnavailableError => e
  puts e.message
  exit 1
end