Module: Android::Devices

Defined in:
lib/android/devices.rb,
lib/android/devices/model.rb

Defined Under Namespace

Classes: Model

Class Method Summary collapse

Class Method Details

.devicesObject



44
45
46
47
48
49
# File 'lib/android/devices.rb', line 44

def self.devices
  return @devices unless @devices.nil?
  update_devices unless list_exists
  @devices = CSV.read('devices.csv')
  @devices
end

.list_existsObject



18
19
20
# File 'lib/android/devices.rb', line 18

def self.list_exists
  return File.exists?('devices.csv')
end

.modelsObject



34
35
36
37
38
39
40
41
42
# File 'lib/android/devices.rb', line 34

def self.models
  return @models unless @models.nil?
  @models = []
  devices.shift
  devices.each do |device|
    @models << Model.new(device[0], device[1], device[2], device[3])
  end
  @models
end

.old_list?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/android/devices.rb', line 22

def self.old_list?
  return (File.mtime('devices.csv') < Time.parse((DateTime.now - 30).to_s))
end

.search_by_manufacturer(manufacturer) ⇒ Object



30
31
32
# File 'lib/android/devices.rb', line 30

def self.search_by_manufacturer(manufacturer)
  models.select { |device| device.manufacturer == manufacturer}
end

.search_by_model(model) ⇒ Object



26
27
28
# File 'lib/android/devices.rb', line 26

def self.search_by_model(model)
  models.select { |device| device.model == model}.first
end

.update_devices(url = '') ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/android/devices.rb', line 7

def self.update_devices(url = '')
  csv_url = url.nil? || url.empty? ? 'http://storage.googleapis.com/play_public/supported_devices.csv' : url
  begin
    devices = CSV.parse(open(csv_url).read)
    File.open('devices.csv','w') {|f| f.write(devices.inject([]) { |csv,row| csv << CSV.generate_line(row) }.join('').encode('UTF-8'))}
    return true
  rescue Exception
    raise 'Unable to update devices'
  end
end