module BitToggle

Constants

VERSION

Public Instance Methods

disable(feature, object) click to toggle source
# File lib/bit_toggle.rb, line 8
def disable(feature, object)
  $redis.srem(feature_key(feature), object_key(object))
end
disabled?(feature, object) click to toggle source
# File lib/bit_toggle.rb, line 12
def disabled?(feature, object)
  !enabled?(feature, object)
end
enable(feature, object) click to toggle source
# File lib/bit_toggle.rb, line 16
def enable(feature, object)
  $redis.sadd(feature_key(feature), object_key(object))
end
enable_globally(feature) click to toggle source
# File lib/bit_toggle.rb, line 20
def enable_globally(feature)
  enable(feature, :global)
end
enabled?(feature, object) click to toggle source
# File lib/bit_toggle.rb, line 24
def enabled?(feature, object)
  has_membership?(feature, object) || has_membership?(feature, :global)
end
feature_key(feature) click to toggle source
# File lib/bit_toggle.rb, line 28
def feature_key(feature)
  "features:#{feature.to_s}"
end
object_key(object) click to toggle source
# File lib/bit_toggle.rb, line 32
def object_key(object)
  "#{object.class}:#{object.to_s}"
end
remove(feature) click to toggle source
# File lib/bit_toggle.rb, line 36
def remove(feature)
  $redis.del(feature_key(feature))
end

Private Instance Methods

has_membership?(feature, object) click to toggle source
# File lib/bit_toggle.rb, line 41
def has_membership?(feature, object)
  $redis.sismember(feature_key(feature), object_key(object))
end