Sha256: 9f356146b07662abb5a11ec7313e67cea6d0d5e990432a65e422032505536ed5
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 KB
Contents
require 'zlib' module Flipper module Gates class PercentageOfActors < Gate # Internal: The name of the gate. Used for instrumentation, etc. def name :percentage_of_actors end # Internal: The piece of the adapter key that is unique to the gate class. def key :perc_actors end # Internal: Checks if the gate is open for a thing. # # Returns true if gate open for thing, false if not. def open?(thing) instrument(:open?, thing) { |payload| percentage = toggle.value.to_i if Types::Actor.wrappable?(thing) actor = Types::Actor.wrap(thing) key = "#{@feature.name}#{actor.value}" Zlib.crc32(key) % 100 < percentage else false end } end def protects?(thing) thing.is_a?(Flipper::Types::PercentageOfActors) end def description if enabled? "#{toggle.value}% of actors" else 'disabled' end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flipper-0.4.0 | lib/flipper/gates/percentage_of_actors.rb |