class ABSwitcher::Switcher
Constants
- HEX_MAX
Attributes
major_probability[R]
Public Class Methods
new(ratio)
click to toggle source
# File lib/ab_switcher/switcher.rb, line 7 def initialize(ratio) @major_probability = calc_major_probability(ratio) end
Public Instance Methods
major_hex?(hex_str)
click to toggle source
# File lib/ab_switcher/switcher.rb, line 11 def major_hex?(hex_str) hex_probability(hex_str) <= major_probability end
Private Instance Methods
calc_major_probability(ratio)
click to toggle source
# File lib/ab_switcher/switcher.rb, line 17 def calc_major_probability(ratio) probability = convert_ratio_into_probability(ratio.to_f) probability > 0.5 ? probability : 1 - probability end
convert_ratio_into_probability(ratio)
click to toggle source
# File lib/ab_switcher/switcher.rb, line 22 def convert_ratio_into_probability(ratio) if ratio.between?(0, 1) ratio else # TODO handle raise NotImplementedError end end
hex_probability(hex_str)
click to toggle source
# File lib/ab_switcher/switcher.rb, line 31 def hex_probability(hex_str) # switch by first char hex = hex_str[0].hex rescue 0 hex / HEX_MAX end