Sha256: 5e6be8c0cec8fe651179614c3a7b4d5be39e45c15c96fa4deaddfb7d8bffc973

Contents?: true

Size: 950 Bytes

Versions: 2

Compression:

Stored size: 950 Bytes

Contents

require 'fileutils'

module Jets
  class Turbo
    autoload :DatabaseYaml, 'jets/turbo/database_yaml'
    autoload :Rail, 'jets/turbo/rail'

    # Turbo charge mode
    def charge
      framework = detect
      case framework
      when :jets
        # do nothing
      when :rails
        Rail.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

2 entries across 2 versions & 1 rubygems

Version Path
jets-1.9.7 lib/jets/turbo.rb
jets-1.9.6 lib/jets/turbo.rb