Module: EventTracker::ActionControllerExtension
- Defined in:
- lib/event_tracker/action_controller_extensions.rb
Class Method Summary collapse
Instance Method Summary collapse
- #_append_tracker ⇒ Object
- #_sanitize_args(args) ⇒ Object
- #_segment_io_tracker ⇒ Object
- #_tracker_identity(user = nil) ⇒ Object
- #_trackers ⇒ Object
Class Method Details
.included(base) ⇒ Object
3 4 5 |
# File 'lib/event_tracker/action_controller_extensions.rb', line 3 def self.included(base) base.send(:after_filter, :_append_tracker) end |
Instance Method Details
#_append_tracker ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 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 |
# File 'lib/event_tracker/action_controller_extensions.rb', line 7 def _append_tracker return if EventTracker.disabled? || _trackers.empty? body = response.body head_insert_at = body.index('</head') return unless head_insert_at body.insert head_insert_at, view_context.javascript_tag(_trackers.map {|t| t.init }.join("\n")) body_insert_at = body.index('</body') return unless body_insert_at a = [] # Array of all javascript strings to insert properties = session.delete(:tracker_properties) events = session.delete(:tracker_events) pageviews = session.delete(:tracker_pageviews) alias_list = session.delete(:tracker_alias) transactions = session.delete(:tracker_transactions) _trackers.each do |tracker| tracker.(request: request) a << tracker.identify(_tracker_identity) # a << tracker.track_pageview() # No need for this anymore. Done by default if pageviews.present? pageviews.each do |url, properties| a << tracker.track_pageview(url, properties) end end a << tracker.add_properties(properties) if properties.present? if events.present? events.each do |event_name, properties| a << tracker.track_event(event_name, properties) end end if alias_list.present? alias_list.each do |identity1, identity2| a << tracker.create_alias(identity1, identity2) end end if transactions.present? transactions.each do |event_name, properties| a << tracker.track_transaction(event_name, properties) end end end body.insert body_insert_at, view_context.javascript_tag(a.compact.join("\n")) response.body = body end |
#_sanitize_args(args) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/event_tracker/action_controller_extensions.rb', line 69 def _sanitize_args(args) args.each do |k, v| if v.is_a?(Hash) args[k] = _sanitize_args(v) elsif v.is_a?(String) args[k] = ActionController::Base.helpers.sanitize(v) else args[k] = v end end return args end |
#_segment_io_tracker ⇒ Object
86 87 88 89 90 91 |
# File 'lib/event_tracker/action_controller_extensions.rb', line 86 def _segment_io_tracker @_segment_io_tracker ||= begin key = EventTracker.config.segment_io_key key ? EventTracker::SegmentIo.new(key: key) : nil end end |
#_tracker_identity(user = nil) ⇒ Object
82 83 84 |
# File 'lib/event_tracker/action_controller_extensions.rb', line 82 def _tracker_identity(user = nil) respond_to?(:analytics_identity, true) ? send(:analytics_identity, user) : nil end |
#_trackers ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/event_tracker/action_controller_extensions.rb', line 60 def _trackers return [] if EventTracker.disabled? @_trackers ||= begin t = [] t << _segment_io_tracker if _segment_io_tracker t end end |