lib/eeny-meeny/models/experiment.rb in eeny-meeny-2.1.4 vs lib/eeny-meeny/models/experiment.rb in eeny-meeny-2.2.0
- old
+ new
@@ -2,10 +2,13 @@
require 'active_support/time'
require 'active_support/core_ext/enumerable'
module EenyMeeny
class Experiment
+
+ COOKIE_EXPERIMENT_ID_REGEX = /\Aeeny_meeny_(.+)_v\d+\z/.freeze
+
attr_reader :id, :name, :version, :variations, :total_weight, :end_at, :start_at
def self.find_all
EenyMeeny.config.experiments.map do |id, experiment|
new(id, **experiment)
@@ -13,9 +16,15 @@
end
def self.find_by_id(experiment_id)
experiment = EenyMeeny.config.experiments[experiment_id.to_sym]
new(experiment_id, **experiment) if experiment
+ end
+
+ def self.find_by_cookie_name(cookie_name)
+ if cookie_name =~ COOKIE_EXPERIMENT_ID_REGEX
+ find_by_id($1)
+ end
end
def initialize(id, name: '', version: 1, variations: {}, start_at: nil, end_at: nil)
@id = id
@name = name