class Vanity::Adapters::AbstractAdapter

Base class for all adapters. Adapters wrap underlying connection to a datastore and implement an API that Vanity can use to store/access metrics, experiments, etc.

Public Instance Methods

ab_add_conversion(experiment, alternative, identity, count = 1, implicit = false) click to toggle source

Records a conversion in this experiment for the given alternative. Associates a value with the conversion (default to 1). If implicit is true, add particpant if not already recorded for this experiment. If implicit is false (default), only add conversion is participant previously recorded as participating in this experiment.

# File lib/vanity/adapters/abstract_adapter.rb, line 125
def ab_add_conversion(experiment, alternative, identity, count = 1, implicit = false)
  fail "Not implemented"
end
ab_add_participant(experiment, alternative, identity) click to toggle source

Records a participant in this experiment for the given alternative.

# File lib/vanity/adapters/abstract_adapter.rb, line 106
def ab_add_participant(experiment, alternative, identity)
  fail "Not implemented"
end
ab_assigned(experiment, identity) click to toggle source

Determines what alternative a participant has already been given, if any

# File lib/vanity/adapters/abstract_adapter.rb, line 116
def ab_assigned(experiment, identity)
  fail "Not implemented"
end
ab_counts(experiment, alternative) click to toggle source

Returns counts for given A/B experiment and alternative (by index). Returns hash with values for the keys :participants, :converted and :conversions.

# File lib/vanity/adapters/abstract_adapter.rb, line 84
def ab_counts(experiment, alternative)
  fail "Not implemented"
end
ab_get_outcome(experiment) click to toggle source

Returns the outcome of this expriment (if set), the index of a particular alternative.

# File lib/vanity/adapters/abstract_adapter.rb, line 131
def ab_get_outcome(experiment)
  fail "Not implemented"
end
ab_not_showing(experiment, identity) click to toggle source

Cancels previously set association between identity and alternative. See ab_show.

# File lib/vanity/adapters/abstract_adapter.rb, line 101
def ab_not_showing(experiment, identity)
  fail "Not implemented"
end
ab_seen(experiment, identity, assignment) click to toggle source

Determines if a participant already has seen this alternative in this experiment.

# File lib/vanity/adapters/abstract_adapter.rb, line 111
def ab_seen(experiment, identity, assignment)
  fail "Not implemented"
end
ab_set_outcome(experiment, alternative = 0) click to toggle source

Sets the outcome of this experiment to a particular alternative.

# File lib/vanity/adapters/abstract_adapter.rb, line 136
def ab_set_outcome(experiment, alternative = 0)
  fail "Not implemented"
end
ab_show(experiment, identity, alternative) click to toggle source

Pick particular alternative (by index) to show to this particular participant (by identity).

# File lib/vanity/adapters/abstract_adapter.rb, line 90
def ab_show(experiment, identity, alternative)
  fail "Not implemented"
end
ab_showing(experiment, identity) click to toggle source

Indicates which alternative to show to this participant. See ab_show.

# File lib/vanity/adapters/abstract_adapter.rb, line 95
def ab_showing(experiment, identity)
  fail "Not implemented"
end
active?() click to toggle source

Returns true if connected.

# File lib/vanity/adapters/abstract_adapter.rb, line 8
def active?
  false
end
destroy_experiment(experiment) click to toggle source

Deletes all information about this experiment.

# File lib/vanity/adapters/abstract_adapter.rb, line 141
def destroy_experiment(experiment)
  fail "Not implemented"
end
destroy_metric(metric) click to toggle source

Deletes all information about this metric.

# File lib/vanity/adapters/abstract_adapter.rb, line 44
def destroy_metric(metric)
  fail "Not implemented"
end
disconnect!() click to toggle source

Close connection, release any resources.

# File lib/vanity/adapters/abstract_adapter.rb, line 13
def disconnect!
end
experiment_persisted?(experiment) click to toggle source

– Experiments –

# File lib/vanity/adapters/abstract_adapter.rb, line 51
def experiment_persisted?(experiment)
  fail "Not implemented"
end
flushdb() click to toggle source

Empty the database. This is used during tests.

# File lib/vanity/adapters/abstract_adapter.rb, line 21
def flushdb
end
get_experiment_created_at(experiment) click to toggle source

Return when experiment was created.

# File lib/vanity/adapters/abstract_adapter.rb, line 61
def get_experiment_created_at(experiment)
  fail "Not implemented"
end
get_metric_last_update_at(metric) click to toggle source

Return when metric was last updated.

# File lib/vanity/adapters/abstract_adapter.rb, line 28
def get_metric_last_update_at(metric)
  fail "Not implemented"
end
is_experiment_completed?(experiment) click to toggle source

Returns true if experiment completed.

# File lib/vanity/adapters/abstract_adapter.rb, line 66
def is_experiment_completed?(experiment)
  fail "Not implemented"
end
is_experiment_enabled?(experiment) click to toggle source

Returns true if experiment is enabled, the default (Vanity.configuration.experiments_start_enabled) is true. (*except for mock_adapter, where default is true for testing)

# File lib/vanity/adapters/abstract_adapter.rb, line 77
def is_experiment_enabled?(experiment)
  fail "Not implemented"
end
metric_track(metric, timestamp, identity, values) click to toggle source

Track metric data.

# File lib/vanity/adapters/abstract_adapter.rb, line 33
def metric_track(metric, timestamp, identity, values)
  fail "Not implemented"
end
metric_values(metric, from, to) click to toggle source

Returns all the metric values between from and to time instances (inclusive). Returns pairs of date and total count for that date.

# File lib/vanity/adapters/abstract_adapter.rb, line 39
def metric_values(metric, from, to)
  fail "Not implemented"
end
reconnect!() click to toggle source

Close and reopen connection.

# File lib/vanity/adapters/abstract_adapter.rb, line 17
def reconnect!
end
set_experiment_created_at(experiment, time) click to toggle source

Store when experiment was created (do not write over existing value).

# File lib/vanity/adapters/abstract_adapter.rb, line 56
def set_experiment_created_at(experiment, time)
  fail "Not implemented"
end
set_experiment_enabled(experiment, enabled) click to toggle source

Store whether an experiment is enabled or not

# File lib/vanity/adapters/abstract_adapter.rb, line 71
def set_experiment_enabled(experiment, enabled)
  fail "Not implemented"
end

Private Instance Methods

with_ab_seen_deprecation(experiment, identity, alternative) { |experiment, identity, id| ... } click to toggle source
# File lib/vanity/adapters/abstract_adapter.rb, line 147
def with_ab_seen_deprecation(experiment, identity, alternative)
  if alternative.respond_to?(:id)
    Vanity.configuration.logger.warn(%q{Deprecated: #ab_seen should be passed the alternative id, not an Alternative instance})
    yield experiment, identity, alternative.id
  else
    yield experiment, identity, alternative
  end
end