Class: Skadi::CookieManager
- Inherits:
-
Object
- Object
- Skadi::CookieManager
- Defined in:
- lib/skadi/cookie_manager.rb
Constant Summary collapse
- ANONYMITY_SET_KEY =
"skadi_anonymity_set"- TRACKING_TOKEN_KEY =
"skadi_id"- TRACK_USER_KEY =
"skadi_track_user"- UUID_REGEX =
/\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/
Instance Attribute Summary collapse
- #cookies ⇒ ActionDispatch::Cookies::CookieJar readonly
- #request ⇒ ActionDispatch::Cookies::CookieJar readonly
Instance Method Summary collapse
-
#initialize(request) ⇒ CookieManager
constructor
A new instance of CookieManager.
- #renew! ⇒ Object
- #track_users ⇒ Object
- #track_users=(new_value) ⇒ Object
- #tracking_token ⇒ Object
- #tracking_token=(new_value) ⇒ Object
- #use_anonymity_sets ⇒ Object
- #use_anonymity_sets=(new_value) ⇒ Object
Constructor Details
#initialize(request) ⇒ CookieManager
Returns a new instance of CookieManager.
11 12 13 14 |
# File 'lib/skadi/cookie_manager.rb', line 11 def initialize(request) @request = request @cookies = request. end |
Instance Attribute Details
#cookies ⇒ ActionDispatch::Cookies::CookieJar (readonly)
9 10 11 |
# File 'lib/skadi/cookie_manager.rb', line 9 def @cookies end |
#request ⇒ ActionDispatch::Cookies::CookieJar (readonly)
9 10 11 |
# File 'lib/skadi/cookie_manager.rb', line 9 def request @request end |
Instance Method Details
#renew! ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/skadi/cookie_manager.rb', line 16 def renew! ANONYMITY_SET_KEY, [ANONYMITY_SET_KEY] if [ "1", "0" ].include?([ANONYMITY_SET_KEY]) TRACK_USER_KEY, [TRACK_USER_KEY] if [ "1", "0" ].include?([TRACK_USER_KEY]) if .has_key? TRACKING_TOKEN_KEY token = tracking_token if token TRACKING_TOKEN_KEY, token else # If the key is set, but the token returned by `tracking_token()` is nil, then the cookie is malformed and we delete it TRACKING_TOKEN_KEY end end end |
#track_users ⇒ Object
40 41 42 43 |
# File 'lib/skadi/cookie_manager.rb', line 40 def track_users return true if [TRACK_USER_KEY] == "1" return false if [TRACK_USER_KEY] == "0" end |
#track_users=(new_value) ⇒ Object
45 46 47 |
# File 'lib/skadi/cookie_manager.rb', line 45 def track_users=(new_value) TRACK_USER_KEY, new_value ? "1" : "0" end |
#tracking_token ⇒ Object
49 50 51 52 53 54 |
# File 'lib/skadi/cookie_manager.rb', line 49 def tracking_token token = [TRACKING_TOKEN_KEY] # The cookie is user input, so we ensure the cookie is a UUID as expected token&.match(UUID_REGEX) ? token : nil end |
#tracking_token=(new_value) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/skadi/cookie_manager.rb', line 56 def tracking_token=(new_value) if new_value.nil? (TRACKING_TOKEN_KEY) return end TRACKING_TOKEN_KEY, new_value end |
#use_anonymity_sets ⇒ Object
31 32 33 34 |
# File 'lib/skadi/cookie_manager.rb', line 31 def use_anonymity_sets return true if [ANONYMITY_SET_KEY] == "1" return false if [ANONYMITY_SET_KEY] == "0" end |
#use_anonymity_sets=(new_value) ⇒ Object
36 37 38 |
# File 'lib/skadi/cookie_manager.rb', line 36 def use_anonymity_sets=(new_value) ANONYMITY_SET_KEY, new_value ? "1" : "0" end |