Module: Glib::Analytics::Funnel
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/controllers/concerns/glib/analytics/funnel.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #glib_analytics_feature_referer ⇒ Object
- #glib_analytics_feature_segment ⇒ Object
- 
  
    
      #glib_analytics_included?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    # Expose protected method public # Override def policy_scope(*args) super end end. 
Instance Method Details
#glib_analytics_feature_referer ⇒ Object
| 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # File 'app/controllers/concerns/glib/analytics/funnel.rb', line 33 def glib_analytics_feature_referer group = request.headers['GApp-Analytics-Referer-Group'] action = request.headers['GApp-Analytics-Referer-Action'] segment = request.headers['GApp-Analytics-Referer-Segment'] placement = request.headers['GApp-Analytics-Referer-Placement'] referrer_url = request.headers['referer'] # Notice that the HTTP header uses one "r" if group.nil? && action.nil? && !referrer_url.nil? current_host = request.host referrer_host = URI.parse(referrer_url).host # Replace the subdomain portion with regex so it will only match the non-subdomain part. # This will allow cross-subdomain referral, but it will not work if the host is a bare domain, # which is something that we should avoid doing anyway. regex = '^([^\.]*)\.' if current_host == referrer_host || !/#{current_host.sub(/#{regex}/, regex)}/.match(referrer_host).nil? referrer_url = referrer_url.delete_suffix('/') begin route = Rails.application.routes.recognize_path(referrer_url) group = route[:controller] action = route[:action] rescue ActionController::RoutingError # Do nothing. This may happen when the referrer is from the same domain, # but not from the same Rails app. end end end if group && action return { group: group, action: action, segment: segment, placement: placement } end nil end | 
#glib_analytics_feature_segment ⇒ Object
| 28 29 30 31 | # File 'app/controllers/concerns/glib/analytics/funnel.rb', line 28 def glib_analytics_feature_segment # To be overridden nil end | 
#glib_analytics_included? ⇒ Boolean
# Expose protected method
public  # Override
def policy_scope(*args)
  super
end
end
| 24 25 26 | # File 'app/controllers/concerns/glib/analytics/funnel.rb', line 24 def glib_analytics_included? true end |