Class: Unleash::Metrics

Inherits:
Object
  • Object
show all
Defined in:
lib/unleash/metrics.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMetrics

NOTE: no mutexes for features



7
8
9
# File 'lib/unleash/metrics.rb', line 7

def initialize
  self.features = {}
end

Instance Attribute Details

#featuresObject

Returns the value of attribute features.



3
4
5
# File 'lib/unleash/metrics.rb', line 3

def features
  @features
end

Instance Method Details

#increment(feature, choice) ⇒ Object



15
16
17
18
19
20
# 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) ⇒ Object



22
23
24
25
26
27
# 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

#resetObject



29
30
31
# File 'lib/unleash/metrics.rb', line 29

def reset
  self.features = {}
end

#to_sObject



11
12
13
# File 'lib/unleash/metrics.rb', line 11

def to_s
  self.features.to_json
end