Sha256: 3198203c6d8a458b0302b9874b5e314bd96bcd0bc886ef684268a1785dbe7d40

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

class Conductor
  class RollUp
    def self.process
      Conductor::RawExperiment.all.group_by(&:created_date).each do |day, daily_rows|

        # remove all the existing data for that day
        Conductor::DailyExperiment.delete_all(:activity_date => day)

        daily_rows.group_by(&:group_name).each do |group_name, group_rows|
          group_rows.group_by(&:option_name).each do |option_name, option_rows|
            conversion_value = option_rows.select {|x| !x.conversion_value.nil?}.inject(0) {|res, x| res += x.conversion_value}
            views = option_rows.count
            conversions = option_rows.count {|x| !x.conversion_value.nil?}
            Conductor::DailyExperiment.create!(:activity_date => day,
                                         :group_name => group_name,
                                         :option_name => option_name,
                                         :conversion_value => conversion_value,
                                         :views => views,
                                         :conversions => conversions )
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
conductor-0.2.16 lib/conductor/roll_up.rb
conductor-0.2.15 lib/conductor/roll_up.rb
conductor-0.2.13 lib/conductor/roll_up.rb
conductor-0.2.9 lib/conductor/roll_up.rb