Sha256: dd5060fcde1b0e5b925f05881c6416a8771690faa73d3d8e3457aff115d4fbc0

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require 'java'

module Kirk
  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

2 entries across 2 versions & 1 rubygems

Version Path
kirk-0.1.8-java lib/kirk/bootstrap.rb
kirk-0.1.7-java lib/kirk/bootstrap.rb