class Flipflop::Strategies::SessionStrategy

Public Class Methods

default_description() click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 5
def default_description
  "Stores features in the user session. Applies to current user."
end
new(**options) click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 10
def initialize(**options)
  @prefix = options.delete(:prefix).to_s.freeze
  super(**options)
end

Public Instance Methods

clear!(feature) click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 29
def clear!(feature)
  request.session.delete(variable_key(feature))
end
enabled?(feature) click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 19
def enabled?(feature)
  return unless request?
  return unless request.session.has_key?(variable_key(feature))
  request.session[variable_key(feature)] == true
end
switch!(feature, enabled) click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 25
def switch!(feature, enabled)
  request.session[variable_key(feature)] = enabled
end
switchable?() click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 15
def switchable?
  request?
end

Protected Instance Methods

variable_key(feature) click to toggle source
# File lib/flipflop/strategies/session_strategy.rb, line 35
def variable_key(feature)
  @prefix + feature.to_s
end