require 'feature' require 'resolvers/group' require 'resolvers/percentage' module CanaryLabs mattr_accessor :default_participation def self.setup default_participation: true @@experiments = {} @@default_participation = default_participation end def self.participating? feat_name, id experiment = @@experiments[feat_name] return @@default_participation if experiment.nil? experiment.participating? id end def self.add name, desc, resolver @@experiments[name] = Feature.new name, desc, resolver end def self.find name @@experiments[name] end def self.all @@experiments.values end end