Class: Fino::AbTesting::Analysis
- Inherits:
-
Object
- Object
- Fino::AbTesting::Analysis
- Defined in:
- lib/fino/ab_testing/analysis.rb
Defined Under Namespace
Classes: VariantData
Instance Attribute Summary collapse
-
#variants_data ⇒ Object
readonly
Returns the value of attribute variants_data.
Class Method Summary collapse
-
.from_raw_conversions(setting_instance, raw_conversions) ⇒ Object
rubocop:disable Metrics/MethodLength.
Instance Method Summary collapse
- #any_conversions? ⇒ Boolean
-
#initialize(variants_data) ⇒ Analysis
constructor
A new instance of Analysis.
- #total_conversions ⇒ Object
Constructor Details
#initialize(variants_data) ⇒ Analysis
Returns a new instance of Analysis.
38 39 40 |
# File 'lib/fino/ab_testing/analysis.rb', line 38 def initialize(variants_data) @variants_data = variants_data end |
Instance Attribute Details
#variants_data ⇒ Object (readonly)
Returns the value of attribute variants_data.
36 37 38 |
# File 'lib/fino/ab_testing/analysis.rb', line 36 def variants_data @variants_data end |
Class Method Details
.from_raw_conversions(setting_instance, raw_conversions) ⇒ Object
rubocop:disable Metrics/MethodLength
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fino/ab_testing/analysis.rb', line 15 def from_raw_conversions(setting_instance, raw_conversions) # rubocop:disable Metrics/MethodLength experiment = setting_instance.experiment variants_data = experiment.variants.map do |variant| entries = raw_conversions.fetch(variant, []) daily_conversions = entries .group_by { |_scope, score| Time.at(score / 1000.0).to_date.to_s } .transform_values(&:size) Fino::AbTesting::Analysis::VariantData.new( variant: variant, conversions_count: entries.size, daily_conversions: daily_conversions ) end Fino::AbTesting::Analysis.new(variants_data) end |
Instance Method Details
#any_conversions? ⇒ Boolean
42 43 44 |
# File 'lib/fino/ab_testing/analysis.rb', line 42 def any_conversions? variants_data.any? { |vd| vd.conversions_count > 0 } end |
#total_conversions ⇒ Object
46 47 48 |
# File 'lib/fino/ab_testing/analysis.rb', line 46 def total_conversions variants_data.sum(&:conversions_count) end |