class Unleash::Metrics

Attributes

features[RW]

Public Class Methods

new() click to toggle source

NOTE: no mutexes for features

# File lib/unleash/metrics.rb, line 7
def initialize
  self.features = {}
end

Public Instance Methods

increment(feature, choice) click to toggle source
# File lib/unleash/metrics.rb, line 15
def increment(feature, choice)
  raise "InvalidArgument choice must be :yes or :no" unless [:yes, :no].include? choice

  self.features[feature] = { yes: 0, no: 0 } unless self.features.include? feature
  self.features[feature][choice] += 1
end
increment_variant(feature, variant) click to toggle source
# File lib/unleash/metrics.rb, line 22
def increment_variant(feature, variant)
  self.features[feature] = { yes: 0, no: 0 } unless self.features.include? feature
  self.features[feature]['variant'] = {}     unless self.features[feature].include? 'variant'
  self.features[feature]['variant'][variant] = 0 unless self.features[feature]['variant'].include? variant
  self.features[feature]['variant'][variant] += 1
end
reset() click to toggle source
# File lib/unleash/metrics.rb, line 29
def reset
  self.features = {}
end
to_s() click to toggle source
# File lib/unleash/metrics.rb, line 11
def to_s
  self.features.to_json
end