Sha256: 45f5e2c33ae9ac5e1ef3edb85b53d782d86cc7abf5136a964b4149175f9c7bbe

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

module Stickler
  class Server

    # The directory holding all the repositories
    attr_reader :stickler_root

    def initialize( stickler_root )
      @stickler_root = File.expand_path( stickler_root )
      raise ::Stickler::Error, "Stickler root directory '#{@stickler_root}' must already exist" unless File.directory?( @stickler_root )
      raise ::Stickler::Error, "Stickler root directory '#{@stickler_root}' must be writable" unless File.writable?( @stickler_root )
    end

    def app
      root = self.stickler_root
      Rack::Builder.app do
        use Rack::CommonLogger
        use Stickler::Middleware::Compression
        use Stickler::Middleware::Gemcutter, :serve_indexes => false, :repo_root => File.join( root, "gemcutter" )
        use Stickler::Middleware::Mirror,    :serve_indexes => false, :repo_root => File.join( root, "mirror" )
        use Stickler::Middleware::Index,     :serve_indexes => true
        use Stickler::Middleware::NotFound
        run Sinatra::Base
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stickler-2.3.0 lib/stickler/server.rb