Sha256: 925b22147a0f51d126560c0b6b704d37543abe6c856288f9a4d8cd7158045e97

Contents?: true

Size: 1.83 KB

Versions: 12

Compression:

Stored size: 1.83 KB

Contents

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

# Sqreen Namespace
module Sqreen

  SDK_RESERVED_PREFIX = 'sq.'.freeze
  TRACK_PAYLOAD_DATA = ['request'.freeze, 'params'.freeze, 'headers'.freeze].freeze

  # Sqreen SDK
  class << self
    # Authentication tracking method
    def auth_track(is_logged_in, authentication_keys); end

    def signup_track(authentication_keys); end

    def identify(authentication_keys, traits = {})
      return unless Sqreen.framework
      Sqreen.framework.observe(
        :sdk,
        [:identify, Time.now, authentication_keys, traits],
        [], false
      )
    end

    def track(event_name, options = {})
      unless Sqreen.framework
        Sqreen.log.warn("Ignored track call (event #{event_name}) due to framework absence")
        return
      end

      Sqreen.log.debug { "Sqreen.track() call (event #{event_name}, options #{options})" }

      if event_name.start_with? SDK_RESERVED_PREFIX
        Sqreen.log.warn("Event names starting with '#{SDK_RESERVED_PREFIX}' " \
                        'are reserved. Event ignored.')
        return false
      end
      internal_track(event_name, options)
    end

    # For internal usage. Users are to call track() instead.
    def internal_track(event_name, options = {})
      properties = options[:properties]
      user_identifiers = options[:user_identifiers]
      timestamp = options[:timestamp] || Time.now.utc
      # Not in SDK v0
      # request = options[:request]

      args = {}
      args[:user_identifiers] = user_identifiers if user_identifiers
      args[:properties] = properties if properties

      Sqreen.framework.observe(
        :sdk,
        [:track, timestamp, event_name, :args => args],
        TRACK_PAYLOAD_DATA, true
      )
      true
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
sqreen-1.18.6-java lib/sqreen/sdk.rb
sqreen-1.18.6 lib/sqreen/sdk.rb
sqreen-1.18.5-java lib/sqreen/sdk.rb
sqreen-1.18.5 lib/sqreen/sdk.rb
sqreen-1.18.4-java lib/sqreen/sdk.rb
sqreen-1.18.4 lib/sqreen/sdk.rb
sqreen-1.18.3-java lib/sqreen/sdk.rb
sqreen-1.18.3 lib/sqreen/sdk.rb
sqreen-1.18.3.beta2 lib/sqreen/sdk.rb
sqreen-1.18.3.beta1 lib/sqreen/sdk.rb
sqreen-1.18.2-java lib/sqreen/sdk.rb
sqreen-1.18.2 lib/sqreen/sdk.rb