Sha256: c5a9c410ca878ee490ea766ca62597d01a94eefc67e96892edadbd58706d2e8b

Contents?: true

Size: 1.59 KB

Versions: 9

Compression:

Stored size: 1.59 KB

Contents

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

# TODO: @@framework global of hell, misscoped (move to Sqreen::Framework?)
# TODO: Sqreen::Frameworks => Sqreen::Framework

require 'sqreen/log'

module Sqreen
  module Frameworks; end

  @@framework = nil

  def self::set_framework(fwk)
    @@framework = fwk
  end

  def self::framework
    return @@framework if @@framework
    klass = case
            when defined?(::Rails) && defined?(::Rails::VERSION)
              case Rails::VERSION::MAJOR.to_i
              when 4, 5, 6
                require 'sqreen/frameworks/rails'
                Sqreen::Frameworks::RailsFramework
              when 3
                require 'sqreen/frameworks/rails3'
                Sqreen::Frameworks::Rails3Framework
              else
                Sqreen.log.warn "Detected unsupported Rails version #{Rails.version}, but continuing"
                require 'sqreen/frameworks/rails'
                Sqreen::Frameworks::RailsFramework
              end
            when defined?(::Sinatra)
              require 'sqreen/frameworks/sinatra'
              Sqreen::Frameworks::SinatraFramework
            when defined?(::SqreenTest)
              require 'sqreen/frameworks/sqreen_test'
              Sqreen::Frameworks::SqreenTestFramework
            else
              Sqreen.log.error "Error: cannot find any framework\n"
              require 'sqreen/frameworks/generic'
              Sqreen::Frameworks::GenericFramework
            end
    fwk = klass.new
    Sqreen.set_framework(fwk)
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
sqreen-1.18.6-java lib/sqreen/frameworks.rb
sqreen-1.18.6 lib/sqreen/frameworks.rb
sqreen-1.18.5-java lib/sqreen/frameworks.rb
sqreen-1.18.5 lib/sqreen/frameworks.rb
sqreen-1.18.4-java lib/sqreen/frameworks.rb
sqreen-1.18.4 lib/sqreen/frameworks.rb
sqreen-1.18.3-java lib/sqreen/frameworks.rb
sqreen-1.18.3 lib/sqreen/frameworks.rb
sqreen-1.18.3.beta2 lib/sqreen/frameworks.rb