Sha256: 008a26bb52707f44219e1b56d99620252f8ecc5fe2489a0e0a310a720b014b82

Contents?: true

Size: 1.11 KB

Versions: 3

Compression:

Stored size: 1.11 KB

Contents

require 'java'

module Kirk
  import 'java.util.zip.GZIPInputStream'
  import 'java.util.zip.InflaterInputStream'

  class Bootstrap
    def warmup(application_path)
      Dir.chdir File.expand_path(application_path)

      load_rubygems

      load_bundle.tap do
        add_kirk_to_load_path

        load_rack
        load_kirk
      end
    end

    def run(rackup)
      app, options = Rack::Builder.parse_file(rackup)

      Kirk::Handler.new(app)
    end

  private

    def load_rubygems
      require 'rubygems'
    end

    def load_bundle
      if File.exist?('Gemfile')
        require 'bundler/setup'

        if File.exist?('Gemfile.lock')
          require 'digest/sha1'
          str = File.read('Gemfile') + File.read('Gemfile.lock')
          Digest::SHA1.hexdigest(str)
        end
      end
    end

    def add_kirk_to_load_path
      $:.unshift File.expand_path('../..', __FILE__)
    end

    def load_rack
      gem "rack", ">= 1.0.0"
      require 'rack'
    end

    def load_kirk
      require 'kirk/version'
      require 'kirk/input_stream'
      require 'kirk/handler'
    end
  end
end

Kirk::Bootstrap.new

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kirk-0.1.6-java lib/kirk/bootstrap.rb
kirk-0.1.5-java lib/kirk/bootstrap.rb
kirk-0.1.0-java lib/kirk/bootstrap.rb