module ActsAsReferred::Controller

Namespce for controller-related functionality

Protected Instance Methods

_supply_model_hook() click to toggle source

The before_filter which processes necessary data for acts_as_referred - models

# File lib/acts_as_referred/controller.rb, line 16
def _supply_model_hook

  # 3.2.1 -> adwords auto-tagging - (show hint to manual tag adwords):
  #  ?gclid=xxxx
  # 3.2.2 -> manual tagging
  #  ?utm_source=google&utm_medium=cpc&utm_term=my_keyword&utm_campaign=my_summerdeal
  # 3.2.3 -> manual url-tagging specific for piwik
  #  ?pk_campaign=my_summerdeal&pk_kwd=my_keyword
  # cookie / session persisted:
  # e.g.: "req=http://foo/baz?utm_campaign=plonk|ref=http://google.com/search|count=0"
  
  tmp = session[:__reqref]
  _struct = nil
  if tmp
    arr = tmp.split('|')
    _struct = OpenStruct.new(
                request_url: arr[0].split('=',2)[1],
                referrer_url: minlength_or_nil(arr[1].split('=',2)[1]),
                visit_count: arr[2].split('=',2)[1].to_i
                )
  end

  ActiveRecord::Base.send(
                          :define_method, 
                          '_get_reqref', 
                          proc{ _struct }   
                         )
end

Private Instance Methods

_increment_returning_count(tmp) click to toggle source
# File lib/acts_as_referred/controller.rb, line 74
def _increment_returning_count(tmp)
  arr = tmp.split('|')
  arr[-1] = "ret=#{arr[-1].split('=')[-1].to_i + 1}"
  arr.join('|')
end
minlength_or_nil(string) click to toggle source
# File lib/acts_as_referred/controller.rb, line 80
def minlength_or_nil(string)
  URI.parse(string).host ? string : nil
end