class Rack::Utm
Constants
- DEFAULT_REQUIRED_PARAMETERS
Attributes
allow_overwrite[R]
app[R]
extras[R]
optional_parameters[R]
req[R]
required_parameters[R]
Public Class Methods
new(app, **options)
click to toggle source
# File lib/rack_utm.rb, line 8 def initialize(app, **options) @app = app @required_parameters = options.fetch(:required_parameters, DEFAULT_REQUIRED_PARAMETERS).map(&:to_s) @cookie_time_to_live = options.fetch(:cookie_time_to_live, default_cookie_time_to_live) @allow_overwrite = options.fetch(:allow_overwrite, true) @cookie_path = options[:cookie_path] @cookie_domain = options[:cookie_domain] @optional_parameters = options.fetch(:optional_parameters, []).map(&:to_s) end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack_utm.rb, line 19 def call(env) @req = Rack::Request.new(env) set_env(env) status, headers, body = app.call(env) if set_cookies? set_cookies(headers) else delete_cookies(headers) end [status, headers, body] end
Private Instance Methods
all_parameter_names()
click to toggle source
# File lib/rack_utm.rb, line 46 def all_parameter_names required_parameters.concat(optional_parameters) end
expires()
click to toggle source
# File lib/rack_utm.rb, line 93 def expires Time.now + cookie_time_to_live end
newer_parameters()
click to toggle source
# File lib/rack_utm.rb, line 102 def newer_parameters params .slice(*required_parameters.dup.concat(optional_parameters)) .merge( 'utm_from' => req.env["HTTP_REFERER"], 'utm_time' => Time.now.to_i, ) end
params()
click to toggle source
# File lib/rack_utm.rb, line 50 def params req.params end
required_param_values()
click to toggle source
# File lib/rack_utm.rb, line 80 def required_param_values params.values_at(*required_parameters) end
set_env(env)
click to toggle source
# File lib/rack_utm.rb, line 76 def set_env(env) values.each { |key, value| env["#{key}"] = value } end
set_params_for_env?()
click to toggle source
# File lib/rack_utm.rb, line 62 def set_params_for_env? return false unless !required_param_values.compact.empty? true end
values()
click to toggle source
# File lib/rack_utm.rb, line 68 def values values = [] values = cookies if set_cookies_for_env? values = newer_parameters if set_params_for_env? && allow_overwrite values end