Sha256: 83033061aa6d1e65d3e741f4d02ae935c4dc8a684dae70a3db1b9e42b380aae5

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

module Oboe
  module Inst
    module Rails
      def self.load_initializer
        # Force load the tracelytics Rails initializer if there is one
        # Prefer oboe.rb but give priority to tracelytics.rb if it exists
        if ::Rails::VERSION::MAJOR > 2
          rails_root = "#{::Rails.root.to_s}"
        else
          rails_root = "#{RAILS_ROOT}"
        end

        if File.exists?("#{rails_root}/config/initializers/tracelytics.rb")
          tr_initializer = "#{rails_root}/config/initializers/tracelytics.rb"
        else 
          tr_initializer = "#{rails_root}/config/initializers/oboe.rb"
        end
        require tr_initializer if File.exists?(tr_initializer)
      end

      def self.load_instrumentation
        pattern = File.join(File.dirname(__FILE__), 'inst', '*.rb')
        Dir.glob(pattern) do |f|
          begin
            require f
          rescue => e
            $stderr.puts "[oboe/loading] Error loading rails insrumentation file '#{f}' : #{e}"
          end
        end
        if ::Rails::VERSION::MAJOR > 2
          puts "Tracelytics oboe gem #{Gem.loaded_specs['oboe'].version.to_s} successfully loaded."
        else
          puts "Tracelytics oboe gem #{Oboe::Version::STRING} successfully loaded." 
        end
      end
    end
  end
end

if defined?(::Rails)
  if ::Rails::VERSION::MAJOR > 2
    module Oboe
      class Railtie < ::Rails::Railtie
        config.after_initialize do
          Oboe::Inst::Rails.load_instrumentation
        end
      end
    end
  else
    Oboe::Inst::Rails.load_initializer
    Oboe::Inst::Rails.load_instrumentation
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
oboe-1.3.0 lib/oboe/frameworks/rails/rails.rb