class Rack::TradeTracker::Cookie

Constants

DIGEST_PARAMS
NAME
PATH
VALUE_PARAMS

Attributes

domain[R]
parameters[R]

Public Class Methods

new(domain, parameters) click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 10
def initialize(domain, parameters)
  @domain, @parameters = domain, parameters
end

Public Instance Methods

as_hash() click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 33
def as_hash
  {
      value: value,
      domain: ".#{domain}",
      path: PATH,
      expires: 1.year.from_now
  }
end
checksum() click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 18
def checksum
  source = "CHK_#{DIGEST_PARAMS.map { |param| params_hash[param]  }.join('::')}"
  Digest::MD5.hexdigest(source)
end
name() click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 14
def name
  NAME % params_hash
end
timestamp() click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 23
def timestamp
  Time.now.to_i
end
value() click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 27
def value
  VALUE_PARAMS.map { |param| params_hash[param] }.tap do |attributes|
    attributes << checksum << timestamp
  end.join('::')
end

Private Instance Methods

params_hash() click to toggle source
# File lib/rack/trade_tracker/cookie.rb, line 46
def params_hash
  @_params_hash ||= parameters.to_hash
end