Sha256: aa572985d92d30a197ddef414e345512c29319905c258208d93534daccf717b2
Contents?: true
Size: 900 Bytes
Versions: 11
Compression:
Stored size: 900 Bytes
Contents
module Flipflop module Strategies class SessionStrategy < AbstractStrategy class << self def default_description "Stores features in the user session. Applies to current user." end end def initialize(**options) @prefix = options.delete(:prefix).to_s.freeze super(**options) end def switchable? request? end def enabled?(feature) return unless request? return unless request.session.has_key?(variable_key(feature)) request.session[variable_key(feature)] == true end def switch!(feature, enabled) request.session[variable_key(feature)] = enabled end def clear!(feature) request.session.delete(variable_key(feature)) end protected def variable_key(feature) @prefix + feature.to_s end end end end
Version data entries
11 entries across 11 versions & 1 rubygems