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) ⇒ Object
-
#initialize(stats, platform = :all) ⇒ Wrapper
constructor
A new instance of Wrapper.
- #os_grouped ⇒ Object
- #os_total ⇒ Object
- #os_version ⇒ Object
Constructor Details
#initialize(stats, platform = :all) ⇒ Wrapper
Returns a new instance of Wrapper.
11 12 13 14 15 |
# File 'lib/wrapper.rb', line 11 def initialize(stats, platform = :all) super() @stats = stats @platform = platform end |
Instance Method Details
#devices(friendly: false) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/wrapper.rb', line 60 def devices(friendly: false) filtered = filter_device(@stats.data[:devices], @platform) cleaned = [] filtered.each do |row| device = { 'model' => row['Device model'], 'count' => row['Users'].to_i } # if friendly && ((@platform == :all) || (@platform == :android)) # device['friendly'] = Android::Devices.search_by_model(row['Device Model']).name # end cleaned << device end cleaned end |
#os_grouped ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/wrapper.rb', line 31 def os_grouped raw_os = @stats.data[:os_version] grouped = case @platform when :ios ios_os_group(raw_os) when :android android_os_group(raw_os) else android_os_group(raw_os).merge ios_os_group(raw_os) end computed = [] grouped.each do |k, v| version_name = k total = v.map { |version| version['Users'].to_i }.reduce(0, :+) computed << { 'version' => version_name, 'total' => total, 'percentage' => as_percentage(os_total, total.to_f) } end computed end |
#os_total ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/wrapper.rb', line 51 def os_total filtered = filter_os(@stats.data[:os_version], @platform) total = 0 filtered.each do |row| total += row['Users'].to_i end total end |
#os_version ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/wrapper.rb', line 17 def os_version filtered = filter_os(@stats.data[:os_version], @platform) cleaned = [] filtered.each do |row| cleaned << { 'version' => row['OS with version'], 'count' => row['Users'].to_i, 'percentage' => as_percentage(os_total, row['Users'].to_f) } end cleaned end |