Sha256: b84896b83addcfe3ce485d467f254255c12bb16e5679185cc851d4ef03b22cc3

Contents?: true

Size: 1.08 KB

Versions: 66

Compression:

Stored size: 1.08 KB

Contents

require 'fileutils'

module Jets
  class Turbo
    class << self
      extend Memoist

      # Relies on the cached side-effect since Jets afterburner will switch Jets.root and the result will be different
      def afterburner?
        new.rails?
      end
      memoize :afterburner?
    end

    # Turbo charge mode
    def charge
      framework = detect
      case framework
      when :jets
        # do nothing
      when :rails
        Rails.new.setup
      else
        # should never get here
      end
    end

    def detect
      if rails?
        :rails
      elsif jets?
        :jets
      else
        :unknown_framework
      end
    end

    def rails?
      config_ru_contains?('run Rails.application')
    end

    def jets?
      config_ru_contains?('run Jets.application')
    end

    def config_ru_contains?(value)
      root = ENV["JETS_ROOT"] || Dir.pwd # Jets.root is not yet available
      config_ru = "#{root}/config.ru"
      return false unless File.exist?(config_ru)

      lines = ::IO.readlines(config_ru)
      !!lines.detect { |l| l.include?(value) }
    end
  end
end

Version data entries

66 entries across 66 versions & 2 rubygems

Version Path
jets-2.3.19 lib/jets/turbo.rb
jets-2.3.18 lib/jets/turbo.rb
jets-2.3.17 lib/jets/turbo.rb
jets-2.3.16 lib/jets/turbo.rb
jets-2.3.15 lib/jets/turbo.rb
jets-2.3.14 lib/jets/turbo.rb
jets-2.3.13 lib/jets/turbo.rb
jets-2.3.12 lib/jets/turbo.rb
jets-2.3.11 lib/jets/turbo.rb
jets-2.3.10 lib/jets/turbo.rb
jets-2.3.9 lib/jets/turbo.rb
jets-2.3.8 lib/jets/turbo.rb
jets-2.3.7 lib/jets/turbo.rb
jets-2.3.6 lib/jets/turbo.rb
jets-2.3.5 lib/jets/turbo.rb
jets-2.3.4 lib/jets/turbo.rb
jets-2.3.3 lib/jets/turbo.rb
jets-2.3.2 lib/jets/turbo.rb
jets-2.3.1 lib/jets/turbo.rb
jets-2.3.0 lib/jets/turbo.rb