Sha256: 9b8ac754abacdfa23efed79d5f8837654c7043e5ccf852c94abfaee8fea2fb19

Contents?: true

Size: 941 Bytes

Versions: 1

Compression:

Stored size: 941 Bytes

Contents

module Staccato
  module Subscribers
    class Page
      def self.call(*args)
        new(args).track!
      end

      def initialize(args)
        @args = args
      end

      def get?
        payload[:method] == "GET"
      end

      def path
        path_prefix + payload[:path]
      end

      def hostname
        Rails.configuration.staccato.hostname
      end

      def track!
        return unless get?
        tracker.pageview(context.merge(path: path, hostname: hostname))
      end

      private
      def event
        @event ||= ActiveSupport::Notifications::Event.new(*@args)
      end

      def payload
        @payload ||= event.payload
      end

      def tracker
        @tracker ||= payload['staccato.tracker']
      end

      def context
        @context ||= payload['staccato.context']
      end

      def path_prefix
        Rails.application.config.staccato.pageview_prefix.to_s
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
staccato-rails-0.1.0 lib/staccato/subscribers/page.rb