Class: Coverband::Collectors::ViewTrackerService

Inherits:
ViewTracker show all
Defined in:
lib/coverband/collectors/view_tracker_service.rb

Overview

This class extends view tracker to support web service reporting

Constant Summary

Constants inherited from ViewTracker

Coverband::Collectors::ViewTracker::REPORT_ROUTE, Coverband::Collectors::ViewTracker::TITLE, Coverband::Collectors::ViewTracker::VIEWS_PATTERNS

Constants inherited from AbstractTracker

AbstractTracker::REPORT_ROUTE, AbstractTracker::TITLE

Instance Attribute Summary

Attributes inherited from ViewTracker

#roots

Attributes inherited from AbstractTracker

#ignore_patterns, #store, #target

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ViewTracker

#all_keys, #clear_key!, #initialize, #railtie!, #track_key, #unused_keys, #used_keys

Methods inherited from AbstractTracker

#all_keys, #as_json, #clear_key!, #initialize, #keys_to_record, #logged_keys, #reset_recordings, #route, #title, #track_key, #tracking_since, #unused_keys, #used_keys

Constructor Details

This class inherits a constructor from Coverband::Collectors::ViewTracker

Class Method Details

.supported_version?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/coverband/collectors/view_tracker_service.rb', line 26

def self.supported_version?
  defined?(Rails) && defined?(Rails::VERSION) && Rails::VERSION::STRING.split(".").first.to_i >= 4
end

Instance Method Details

#save_reportObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/coverband/collectors/view_tracker_service.rb', line 9

def save_report
  reported_time = Time.now.to_i
  if @views_to_record.any?
    relative_views = @views_to_record.map! do |view|
      roots.each do |root|
        view = view.gsub(/#{root}/, "")
      end
      view
    end
    save_tracked_views(views: relative_views, reported_time: reported_time)
  end
  @views_to_record = []
rescue => e
  # we don't want to raise errors if Coverband can't reach the service
  logger&.error "Coverband: view_tracker failed to store, error #{e.class.name}" if Coverband.configuration.verbose || Coverband.configuration.service_dev_mode
end