Sha256: 188bfc6729f70983e6ffb70ffc98c577afba22a1aa48750b6a908d42bdb3852c

Contents?: true

Size: 1.61 KB

Versions: 39

Compression:

Stored size: 1.61 KB

Contents

# typed: ignore

# 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

39 entries across 39 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/frameworks.rb
sqreen-1.25.0 lib/sqreen/frameworks.rb
sqreen-1.24.3 lib/sqreen/frameworks.rb
sqreen-1.24.2 lib/sqreen/frameworks.rb
sqreen-1.24.1 lib/sqreen/frameworks.rb
sqreen-1.24.0 lib/sqreen/frameworks.rb
sqreen-1.23.2 lib/sqreen/frameworks.rb
sqreen-1.23.1 lib/sqreen/frameworks.rb
sqreen-1.23.0 lib/sqreen/frameworks.rb
sqreen-1.22.1 lib/sqreen/frameworks.rb
sqreen-1.22.0-java lib/sqreen/frameworks.rb
sqreen-1.22.0 lib/sqreen/frameworks.rb
sqreen-1.21.1-java lib/sqreen/frameworks.rb
sqreen-1.21.1 lib/sqreen/frameworks.rb
sqreen-1.21.0-java lib/sqreen/frameworks.rb
sqreen-1.21.0 lib/sqreen/frameworks.rb
sqreen-1.20.4-java lib/sqreen/frameworks.rb
sqreen-1.20.4 lib/sqreen/frameworks.rb
sqreen-1.21.0.beta3-java lib/sqreen/frameworks.rb
sqreen-1.21.0.beta3 lib/sqreen/frameworks.rb