class Rack::Tracker::GoogleGlobal

Public Instance Methods

events() click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 33
def events
  select_handler_events(Event)
end
Also aliased as: handler_events
handler_events()
Alias for: events
pages() click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 27
def pages
  select_handler_events(Page)
end
set_options() click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 41
def set_options
  @_set_options ||= build_set_options
end
trackers() click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 37
def trackers
  @_trackers ||= build_trackers
end

Private Instance Methods

build_set_options() click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 72
def build_set_options
  value = options[:set]
  value.respond_to?(:call) ? value.call(env) : value
end
build_trackers() click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 47
def build_trackers
  options[:trackers].map(&method(:call_tracker)).reject(&method(:invalid_tracker?))
end
call_tracker(tracker) click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 51
def call_tracker(tracker)
  if tracker[:id].respond_to?(:call)
    tracker.merge(id: tracker[:id].call(env))
  else
    tracker
  end
end
invalid_tracker?(tracker) click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 59
  def invalid_tracker?(tracker)
    if tracker[:id].to_s.strip == ''
      $stdout.puts <<~WARN
      WARNING: One of the trackers specified for Rack::Tracker handler 'google_global' is empty.
               Trackers: #{options[:trackers]}
      WARN

      true
    else
      false
    end
  end
select_handler_events(klass) click to toggle source
# File lib/rack/tracker/google_global/google_global.rb, line 77
def select_handler_events(klass)
  handler_events.select { |event| event.is_a?(klass) }
end