Module: BitToggle

Extended by:
BitToggle
Included in:
BitToggle
Defined in:
lib/bit_toggle.rb,
lib/bit_toggle/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Instance Method Details

#disable(feature, object) ⇒ Object



8
9
10
# File 'lib/bit_toggle.rb', line 8

def disable(feature, object)
  $redis.srem(feature_key(feature), object_key(object))
end

#disabled?(feature, object) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/bit_toggle.rb', line 12

def disabled?(feature, object)
  !enabled?(feature, object)
end

#enable(feature, object) ⇒ Object



16
17
18
# File 'lib/bit_toggle.rb', line 16

def enable(feature, object)
  $redis.sadd(feature_key(feature), object_key(object))
end

#enable_globally(feature) ⇒ Object



20
21
22
# File 'lib/bit_toggle.rb', line 20

def enable_globally(feature)
  enable(feature, :global)
end

#enabled?(feature, object) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/bit_toggle.rb', line 24

def enabled?(feature, object)
  has_membership?(feature, object) || has_membership?(feature, :global)
end

#feature_key(feature) ⇒ Object



28
29
30
# File 'lib/bit_toggle.rb', line 28

def feature_key(feature)
  "features:#{feature.to_s}"
end

#object_key(object) ⇒ Object



32
33
34
# File 'lib/bit_toggle.rb', line 32

def object_key(object)
  "#{object.class}:#{object.to_s}"
end

#remove(feature) ⇒ Object



36
37
38
# File 'lib/bit_toggle.rb', line 36

def remove(feature)
  $redis.del(feature_key(feature))
end