class Flipflop::Strategies::CookieStrategy
Public Class Methods
default_description()
click to toggle source
# File lib/flipflop/strategies/cookie_strategy.rb, line 5 def default_description "Stores features in a browser cookie. Applies to current user." end
new(**options)
click to toggle source
Calls superclass method
Flipflop::Strategies::AbstractStrategy::new
# File lib/flipflop/strategies/cookie_strategy.rb, line 10 def initialize(**options) # TODO: Support :expires as a runtime-evaluated option? @options = options.extract!(:path, :domain, :secure, :httponly).freeze @prefix = options.delete(:prefix).to_s.freeze super(**options) end
Public Instance Methods
clear!(feature)
click to toggle source
# File lib/flipflop/strategies/cookie_strategy.rb, line 34 def clear!(feature) request.cookie_jar.delete(cookie_key(feature), **@options) end
enabled?(feature)
click to toggle source
# File lib/flipflop/strategies/cookie_strategy.rb, line 21 def enabled?(feature) return unless request? return unless request.cookie_jar.has_key?(cookie_key(feature)) cookie = request.cookie_jar[cookie_key(feature)] cookie_value = cookie.is_a?(Hash) ? cookie["value"] : cookie cookie_value === "1" end
switch!(feature, enabled)
click to toggle source
# File lib/flipflop/strategies/cookie_strategy.rb, line 29 def switch!(feature, enabled) value = @options.merge(value: enabled ? "1" : "0") request.cookie_jar[cookie_key(feature)] = value end
switchable?()
click to toggle source
# File lib/flipflop/strategies/cookie_strategy.rb, line 17 def switchable? request? end