Module: CookieTracker::ControllerAdditions
- Defined in:
- lib/cookie_tracker/controller_additions.rb
Overview
Description
The ControllerAdditions module is mixed in to ActionController::Base providing the initialize_cookie_tracker instance method for use in your controllers.
The initialize_session_tracker method works identically to the initialize_cookie_tracker method but stores values in the session instead of cookies.
Usage
To initialize the various cookies that you wish to track, execute the method in a before_filter call.
ArticlesController < ApplicationController
before_filter :define_cookies_to_track
def index
end
def
(:cookie_one => 'initial_value', :sort_by => 'date')
end
This will create instance variables and cookies that match the key names from your hash. CookieTracker will track the params[] hash and these instance variables and cookies will be updated when new values are sent via the request.
@cookie_one == 'initial_value'
=> true
@sort_by == 'date'
=> true
cookies[:cookie_one] == 'initial_value'
=> true
cookies[:sort_by] == 'date'
=> true
Instance Method Summary collapse
- #initialize_cookie_tracker(parameters = {}) ⇒ Object
- #initialize_session_tracker(parameters = {}) ⇒ Object
Instance Method Details
#initialize_cookie_tracker(parameters = {}) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/cookie_tracker/controller_additions.rb', line 33 def (parameters={}) expire_date = CookieTracker.configuration[:cookie_expire_date] || 1.days.from_now custom_domain = CookieTracker.configuration[:cookie_tracker_custom_domain] || nil parameters.each do |setting,value| [setting].nil? ? instance_variable_set("@#{setting}",value) : instance_variable_set("@#{setting}",[setting]) instance_variable_set("@#{setting}",params[setting].squish) unless params[setting].nil? [setting] = { :value => instance_variable_get("@#{setting}"), :expires => expire_date, :domain => custom_domain } end end |
#initialize_session_tracker(parameters = {}) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/cookie_tracker/controller_additions.rb', line 48 def initialize_session_tracker(parameters={}) parameters.each do |setting,value| session[setting].nil? ? instance_variable_set("@#{setting}",value) : instance_variable_set("@#{setting}",session[setting]) instance_variable_set("@#{setting}",params[setting].squish) unless params[setting].nil? session[setting] = instance_variable_get("@#{setting}") end end |