-
Notifications
You must be signed in to change notification settings - Fork 29
/
local.rb
34 lines (33 loc) · 1.07 KB
/
local.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'stickler/middleware/index'
module Stickler::Middleware
#
# A Sinatra middleware that implements the HTTP portions of a Modern gem server.
# It sits on top of a Repository::Local and serves up the gems in it.
#
# It utilizies a Stickler::Repository::Local, and the :repo_root option
# is passed directly to it.
#
# == Options
#
# <b>:serve_indexes</b>:: the same as the Index middleware
#
# <b>:repo_root</b>:: The path that is to be the root of the
# Repository instance managed by this server.
#
# The <b>:repo_root</b> option is required.
#
# == Usage
#
# use Stickler::Middleware::Local, :repo_root => '/path/to/repository'
#
# use Stickler::Middleware::Local, :repo_root => '/path/to/repository',
# :serve_indexes => true
#
class Local < Index
def initialize( app = nil, opts = {} )
super( app, opts )
# overwrite the repo that is set in the parent
@repo = ::Stickler::Repository::Local.new( opts[:repo_root] )
end
end
end