Class: FirebaseStats::Wrapper
- Inherits:
-
Object
- Object
- FirebaseStats::Wrapper
- Defined in:
- lib/wrapper.rb
Overview
Transforms the parsed Firebase file into something more user friendly
Instance Method Summary collapse
-
#devices(friendly: false, limit: 10, platform: :all) ⇒ Object
Gets all devices.
- #gender ⇒ Object
- #gender_age ⇒ Object
-
#initialize(stats) ⇒ Wrapper
constructor
A new instance of Wrapper.
-
#os(platform: :all, grouped: true, major_order: true) ⇒ Object
Get all OS versions, grouped by Major version.
Constructor Details
#initialize(stats) ⇒ Wrapper
Returns a new instance of Wrapper.
11 12 13 14 |
# File 'lib/wrapper.rb', line 11 def initialize(stats) super() @stats = stats end |
Instance Method Details
#devices(friendly: false, limit: 10, platform: :all) ⇒ Object
Gets all devices
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/wrapper.rb', line 37 def devices(friendly: false, limit: 10, platform: :all) filtered = DeviceUtils.filter_device(@stats.get(:devices), platform) filtered = filtered.take(limit || 10) cleaned = [] filtered.each do |row| device = { 'model' => row['Device model'] } if friendly && ((platform == :all) || (platform == :android)) mapped = Android::Devices.search_by_model(row['Device model']) device['friendly'] = if mapped.nil? row['Device model'] else mapped.name end end device['count'] = row['Users'].to_i cleaned << device end cleaned end |
#gender ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/wrapper.rb', line 60 def gender raw = @stats.get(:gender) data = [] raw.each do |row| data << { 'gender' => row['Gender'], 'count' => row['Users'].to_i } end data end |
#gender_age ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/wrapper.rb', line 72 def gender_age raw = @stats.get(:gender_age) data = [] raw.each do |row| data << { 'age' => row['Category'], 'male' => (row['Male'].to_f * 100).round(2), 'female' => (row['Female'].to_f * 100).round(2), 'other' => (row['Other'].to_f * 100).round(2) } end data end |
#os(platform: :all, grouped: true, major_order: true) ⇒ Object
Get all OS versions, grouped by Major version
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/wrapper.rb', line 20 def os(platform: :all, grouped: true, major_order: true) os_data = all_os filtered = filter_os(os_data, platform) data = if grouped make_group_stats(filtered, platform) else filtered end major_order ? major_version_sort(data) : data end |