Module: Android::Devices
- Defined in:
- lib/android/devices.rb,
lib/android/devices/model.rb
Defined Under Namespace
Classes: Model
Class Method Summary collapse
- .devices ⇒ Object
- .list_exists ⇒ Object
- .models ⇒ Object
- .old_list? ⇒ Boolean
- .search_by_manufacturer(manufacturer) ⇒ Object
- .search_by_model(model) ⇒ Object
- .update_devices(url = '') ⇒ Object
Class Method Details
.devices ⇒ Object
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_exists ⇒ Object
18 19 20 |
# File 'lib/android/devices.rb', line 18 def self.list_exists return File.exists?('devices.csv') end |
.models ⇒ Object
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
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 |