class Split::Persistence::CookieAdapter

Public Class Methods

new(context) click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 8
def initialize(context)
  @context = context
  @request, @response = context.request, context.response
  @cookies = @request.cookies
  @expires = Time.now + cookie_length_config
end

Public Instance Methods

[](key) click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 15
def [](key)
  hash[key.to_s]
end
[]=(key, value) click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 19
def []=(key, value)
  set_cookie(hash.merge!(key.to_s => value))
end
delete(key) click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 23
def delete(key)
  set_cookie(hash.tap { |h| h.delete(key.to_s) })
end
keys() click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 27
def keys
  hash.keys
end

Private Instance Methods

action_dispatch?() click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 89
def action_dispatch?
  defined?(Rails) && @response.is_a?(ActionDispatch::Response)
end
default_options() click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 46
def default_options
  { expires: @expires, path: '/' }
end
hash() click to toggle source
# File lib/split/persistence/cookie_adapter.rb, line 71
def hash
  @hash ||= begin
    if cookies = @cookies[:split.to_s]
      begin
        JSON.parse(cookies)
      rescue JSON::ParserError
        {}
      end
    else
      {}
    end
  end
end