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
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
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
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
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
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
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
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
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
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
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
Returns true if connected.
# File lib/vanity/adapters/abstract_adapter.rb, line 8 def active? false end
Deletes all information about this experiment.
# File lib/vanity/adapters/abstract_adapter.rb, line 141 def destroy_experiment(experiment) fail "Not implemented" end
Deletes all information about this metric.
# File lib/vanity/adapters/abstract_adapter.rb, line 44 def destroy_metric(metric) fail "Not implemented" end
Close connection, release any resources.
# File lib/vanity/adapters/abstract_adapter.rb, line 13 def disconnect! end
– Experiments –
# File lib/vanity/adapters/abstract_adapter.rb, line 51 def experiment_persisted?(experiment) fail "Not implemented" end
Empty the database. This is used during tests.
# File lib/vanity/adapters/abstract_adapter.rb, line 21 def flushdb end
Return when experiment was created.
# File lib/vanity/adapters/abstract_adapter.rb, line 61 def get_experiment_created_at(experiment) fail "Not implemented" end
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
Returns true if experiment completed.
# File lib/vanity/adapters/abstract_adapter.rb, line 66 def is_experiment_completed?(experiment) fail "Not implemented" end
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
Track metric data.
# File lib/vanity/adapters/abstract_adapter.rb, line 33 def metric_track(metric, timestamp, identity, values) fail "Not implemented" end
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
Close and reopen connection.
# File lib/vanity/adapters/abstract_adapter.rb, line 17 def reconnect! end
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
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
# 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