Module: Philiprehberger::FeatureFlag::Rollout

Defined in:
lib/philiprehberger/feature_flag/rollout.rb

Class Method Summary collapse

Class Method Details

.enabled_for?(flag, user_id, percentage) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
# File 'lib/philiprehberger/feature_flag/rollout.rb', line 10

def enabled_for?(flag, user_id, percentage)
  return false if user_id.nil? || percentage.nil?
  return false if percentage <= 0
  return true if percentage >= 100

  bucket = Zlib.crc32("#{flag}:#{user_id}") % 100
  bucket < percentage
end