Sha256: 348cbf2c93f63e0676207aaa689499ace313fe3b069ec48b2cf8f9a26f0a7c8b

Contents?: true

Size: 896 Bytes

Versions: 6

Compression:

Stored size: 896 Bytes

Contents

# frozen_string_literal: true

module Spotlight
  ##
  # Exhibit mixin to provide analytics data
  module ExhibitAnalytics
    def analytics(dates = { start_date: '365daysAgo', end_date: 'today' }, path = nil)
      return OpenStruct.new unless analytics_provider&.enabled?

      @analytics ||= {}
      start_date = dates['start_date'] || 1.month.ago
      @analytics[start_date] ||= analytics_provider.exhibit_data(path || self, dates)
    end

    def page_analytics(dates = { start_date: '365daysAgo', end_date: 'today' }, path = nil)
      return [] unless analytics_provider&.enabled?

      @page_analytics ||= {}
      start_date = dates['start_date'] || 1.month.ago
      @page_analytics[start_date] ||= analytics_provider.page_data(path || self, dates)
    end

    def analytics_provider
      @analytics_provider ||= Spotlight::Engine.config.analytics_provider.new
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
blacklight-spotlight-4.3.1 app/models/concerns/spotlight/exhibit_analytics.rb
blacklight-spotlight-4.3.0 app/models/concerns/spotlight/exhibit_analytics.rb
blacklight-spotlight-4.2.0 app/models/concerns/spotlight/exhibit_analytics.rb
blacklight-spotlight-4.1.2 app/models/concerns/spotlight/exhibit_analytics.rb
blacklight-spotlight-4.1.1 app/models/concerns/spotlight/exhibit_analytics.rb
blacklight-spotlight-4.1.0 app/models/concerns/spotlight/exhibit_analytics.rb