Module: Experimental

Defined in:
app/models/experimental/population/default.rb,
lib/experimental.rb,
lib/experimental/test.rb,
lib/experimental/engine.rb,
lib/experimental/loader.rb,
lib/experimental/source.rb,
lib/experimental/railtie.rb,
lib/experimental/version.rb,
lib/experimental/overrides.rb,
lib/experimental/test/unit.rb,
lib/experimental/middleware.rb,
lib/experimental/test/rspec.rb,
lib/experimental/source/base.rb,
lib/experimental/source/cache.rb,
lib/experimental/rspec_helpers.rb,
app/models/experimental/subject.rb,
app/models/experimental/experiment.rb,
lib/experimental/controller_actions.rb,
lib/experimental/source/active_record.rb,
lib/experimental/source/configuration.rb,
app/models/experimental/population/filter.rb,
app/models/experimental/population/new_users.rb

Overview

This class will filter the population of an experiment Override in? to filter the population Called by Experiment.in?

Defined Under Namespace

Modules: ClassMethods, ControllerActions, Population, RspecHelpers, Source, Subject, Test Classes: Engine, Experiment, Loader, Middleware, Overrides, Railtie

Constant Summary collapse

VERSION =
[0, 3, 0]

Class Method Summary collapse

Class Method Details

.configure(configuration) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/experimental.rb', line 13

def configure(configuration)
  source = Source::ActiveRecord.new
  if (ttl = configuration['cache_for'])
    source = Source::Cache.new(source, ttl: ttl)
  end
  self.experiment_data = configuration['experiments']
  self.source = source
end

.experiment_dataObject



38
39
40
# File 'lib/experimental.rb', line 38

def experiment_data
  @experimental_data ||= {}
end

.experiment_data=(data) ⇒ Object



34
35
36
# File 'lib/experimental.rb', line 34

def experiment_data=(data)
  @experimental_data = data
end

.overridesObject



49
50
51
# File 'lib/experimental.rb', line 49

def self.overrides
  Thread.current[:experimental_overrides] ||= Overrides.new
end

.register_population_filter(name, filter_class) ⇒ Object



22
23
24
# File 'lib/experimental.rb', line 22

def register_population_filter(name, filter_class)
  Experiment.register_population_filter(name, filter_class)
end

.resetObject



42
43
44
45
46
# File 'lib/experimental.rb', line 42

def reset
  self.source = nil
  self.experiment_data = nil
  Experiment.reset_population_filters
end

.sourceObject



30
31
32
# File 'lib/experimental.rb', line 30

def source
  @experimental_source ||= Source::ActiveRecord.new
end

.source=(source) ⇒ Object



26
27
28
# File 'lib/experimental.rb', line 26

def source=(source)
  @experimental_source = source
end