Class: Piedesaint::Rack::DirectoriesTraversal

Inherits:
Object
  • Object
show all
Defined in:
lib/piedesaint.rb

Instance Method Summary collapse

Constructor Details

#initialize(options, app = nil) ⇒ DirectoriesTraversal

Returns a new instance of DirectoriesTraversal.



41
42
43
44
45
46
47
48
49
# File 'lib/piedesaint.rb', line 41

def initialize(options, app=nil)
  @apps = []
  @options = options.dup
  @options[:folders].each do |root|
    root = File.expand_path root
    puts "Service root: #{root}"
    @apps << ( @options[:tar] ? Rack::DirectoryCompress.new(root, app ? app : Rack::FileEtag.new(root)) : ::Rack::Directory.new(root) )
  end
end

Instance Method Details

#call(env) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/piedesaint.rb', line 51

def call(env)
  response = nil
  @apps.each do |app| 
    response = app.call(env)
    break unless response[0] == 404
  end
  response
end