Module: Ablab::AblabHelper
- Defined in:
- app/helpers/ablab/ablab_helper.rb
Instance Method Summary collapse
- #confidence(z_score, na = 'n/a') ⇒ Object
- #format_decimal(decimal, na = 'n/a') ⇒ Object
- #format_number(number, na = 'n/a') ⇒ Object
- #format_ratio(numerator, denominator, na = 'n/a') ⇒ Object
- #significant?(z_score) ⇒ Boolean
- #winner?(experiment, group_name) ⇒ Boolean
Instance Method Details
#confidence(z_score, na = 'n/a') ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/helpers/ablab/ablab_helper.rb', line 22 def confidence(z_score, na = 'n/a') return na if z_score.nil? || z_score.nan? if z_score >= 2.58 '99%' elsif z_score >= 1.96 '95%' elsif z_score >= 1.65 '90%' else 'insufficient' end end |
#format_decimal(decimal, na = 'n/a') ⇒ Object
13 14 15 16 |
# File 'app/helpers/ablab/ablab_helper.rb', line 13 def format_decimal(decimal, na = 'n/a') return na if decimal.nil? || decimal.nan? '%.3f' % decimal end |
#format_number(number, na = 'n/a') ⇒ Object
8 9 10 11 |
# File 'app/helpers/ablab/ablab_helper.rb', line 8 def format_number(number, na = 'n/a') return na if number.nil? || number.try(:nan?) number_with_delimiter(number, separator: '.', delimiter: ',') end |
#format_ratio(numerator, denominator, na = 'n/a') ⇒ Object
3 4 5 6 |
# File 'app/helpers/ablab/ablab_helper.rb', line 3 def format_ratio(numerator, denominator, na = 'n/a') return na if denominator == 0 '%.3f' % (numerator.to_f / denominator) end |
#significant?(z_score) ⇒ Boolean
18 19 20 |
# File 'app/helpers/ablab/ablab_helper.rb', line 18 def significant?(z_score) z_score && z_score >= 1.65 end |
#winner?(experiment, group_name) ⇒ Boolean
35 36 37 38 39 40 41 42 43 44 |
# File 'app/helpers/ablab/ablab_helper.rb', line 35 def winner?(experiment, group_name) winner_name, winner_results = experiment.results.max_by do |(_, r)| if r[:sessions] > 0 r[:conversions].to_f / r[:sessions] else -1 end end significant?(winner_results[:z_score]) && winner_name == group_name end |