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