require "instana/version"
require 'instana/logger'
require "instana/util"

module Instana
  class << self
    attr_accessor :agent
    attr_accessor :collectors
    attr_accessor :tracer
    attr_accessor :processor
    attr_accessor :config
    attr_accessor :logger
    attr_accessor :pid

    ##
    # setup
    #
    # Setup the Instana language agent to an informal "ready
    # to run" state.
    #
    def setup
      @logger = ::Instana::XLogger.new(STDOUT)
      if ENV.key?('INSTANA_GEM_TEST') || ENV.key?('INSTANA_GEM_DEV')
        @logger.level = Logger::DEBUG
      else
        @logger.level = Logger::WARN
      end
      @logger.unknown "Stan is on the scene.  Starting Instana instrumentation."

      @agent  = ::Instana::Agent.new
      @tracer = ::Instana::Tracer.new
      @processor = ::Instana::Processor.new
      @collectors = []

      # Store the current pid so we can detect a potential fork
      # later on
      @pid = ::Process.pid
    end

    def pid_change?
      @pid != ::Process.pid
    end
  end
end

require "instana/version"
require 'instana/logger'
require "instana/util"

module Instana
  class << self
    attr_accessor :agent
    attr_accessor :collectors
    attr_accessor :tracer
    attr_accessor :processor
    attr_accessor :config
    attr_accessor :logger
    attr_accessor :pid

    ##
    # setup
    #
    # Setup the Instana language agent to an informal "ready
    # to run" state.
    #
    def setup
      @logger = ::Instana::XLogger.new(STDOUT)
      if ENV.key?('INSTANA_GEM_TEST') || ENV.key?('INSTANA_GEM_DEV')
        @logger.level = Logger::DEBUG
      else
        @logger.level = Logger::WARN
      end
      @logger.unknown "Stan is on the scene.  Starting Instana instrumentation."

      @agent  = ::Instana::Agent.new
      @tracer = ::Instana::Tracer.new
      @processor = ::Instana::Processor.new
      @collectors = []

      # Store the current pid so we can detect a potential fork
      # later on
      @pid = ::Process.pid
    end

    # Indicates if the process ID has changed since we last check.
    #
    # @return Boolean
    #
    def pid_change?
      @pid != ::Process.pid
    end

    # Indicates whether we are running in a development environment.
    #
    # @return Boolean
    #
    def debug?
      ENV.key?('INSTANA_GEM_DEV')
    end

    # Indicates whether we are running in the test environment.
    #
    # @return Boolean
    #
    def test?
      ENV.key?('INSTANA_GEM_TEST')
    end
  end
end

Add methods to check which environment we are running in
Add methods to check which environment we are running in
