Sha256: ddb3cc0602ece14c59f2f627b45b142721e23fc9cdd4019411318700dc4dfd6e

Contents?: true

Size: 1.5 KB

Versions: 16

Compression:

Stored size: 1.5 KB

Contents

# Source vendored gems the hard way in all environments
%w(her fakeable_her public_suffix).each do |gem_name|
  lib = File.expand_path("../../vendor/gems/#{gem_name}/lib", __FILE__)
  $LOAD_PATH.push(lib) unless $LOAD_PATH.include?(lib)
  require gem_name
end

require 'public_suffix'
require 'mixpanel-ruby'
require 'resolv'
require 'faraday_middleware'
require 'request_store'
require 'test_track/unrecoverable_connectivity_error'

module TestTrack
  module_function

  SERVER_ERRORS = [Faraday::ConnectionFailed, Faraday::TimeoutError, Her::Errors::RemoteServerError].freeze

  mattr_accessor :enabled_override, :app_name

  class << self
    def analytics
      @analytics ||= wrapper(mixpanel)
    end

    def analytics=(client)
      @analytics = client.is_a?(TestTrack::Analytics::SafeWrapper) ? client : wrapper(client)
    end

    private

    def wrapper(client)
      TestTrack::Analytics::SafeWrapper.new(client)
    end

    def mixpanel
      TestTrack::Analytics::MixpanelClient.new
    end

    def app
      TestTrack::ApplicationIdentity.instance
    end
  end

  def update_config
    yield(ConfigUpdater.new)
  end

  def url
    return nil unless private_url
    full_uri = URI.parse(private_url)
    full_uri.user = nil
    full_uri.password = nil
    full_uri.to_s
  end

  def private_url
    ENV['TEST_TRACK_API_URL']
  end

  def enabled?
    enabled_override.nil? ? !Rails.env.test? : enabled_override
  end

  def app_ab(split_name, context:)
    app.test_track_ab(split_name, context: context)
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
test_track_rails_client-4.0.0.alpha26 lib/test_track.rb
test_track_rails_client-4.0.0.alpha25 lib/test_track.rb
test_track_rails_client-4.0.0.alpha24 lib/test_track.rb
test_track_rails_client-4.0.0.alpha23 lib/test_track.rb
test_track_rails_client-4.0.0.alpha22 lib/test_track.rb
test_track_rails_client-4.0.0.alpha21 lib/test_track.rb
test_track_rails_client-4.0.0.alpha20 lib/test_track.rb
test_track_rails_client-4.0.0.alpha19 lib/test_track.rb
test_track_rails_client-4.0.0.alpha18 lib/test_track.rb
test_track_rails_client-4.0.0.alpha17 lib/test_track.rb
test_track_rails_client-4.0.0.alpha16 lib/test_track.rb
test_track_rails_client-4.0.0.alpha15 lib/test_track.rb
test_track_rails_client-4.0.0.alpha14 lib/test_track.rb
test_track_rails_client-4.0.0.alpha13 lib/test_track.rb
test_track_rails_client-4.0.0.alpha12 lib/test_track.rb
test_track_rails_client-4.0.0.alpha11 lib/test_track.rb