module Android::Devices

Public Class Methods

devices() click to toggle source
# 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_exists() click to toggle source
# File lib/android/devices.rb, line 18
def self.list_exists
  return File.exists?('devices.csv')
end
models() click to toggle source
# 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?() click to toggle source
# 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) click to toggle source
# File lib/android/devices.rb, line 30
def self.search_by_manufacturer(manufacturer)
  models.select { |device| device.manufacturer == manufacturer}
end
search_by_model(model) click to toggle source
# File lib/android/devices.rb, line 26
def self.search_by_model(model)
  models.select { |device| device.model == model}.first
end
update_devices(url = '') click to toggle source
# 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