Sha256: fb2479bdf331bc83ad929a158ba7070f4891133a697ffd97e29dbea983da4030

Contents?: true

Size: 484 Bytes

Versions: 29

Compression:

Stored size: 484 Bytes

Contents

module Ramaze
  # Serving multiple public directories made easy.
  class Files
    def initialize(*roots)
      @roots = roots.flatten.map{|root| File.expand_path(root.to_s) }
      sync
    end

    def call(env)
      @cascade.call(env)
    end

    def <<(path)
      @roots << File.expand_path(path.to_s)
      @roots.uniq!
      sync
    end

    def sync
      file_apps = @roots.map{|root| Rack::File.new(root) }
      @cascade = Rack::Cascade.new(file_apps)
    end
  end
end

Version data entries

29 entries across 29 versions & 4 rubygems

Version Path
Pistos-ramaze-2009.04.08 lib/ramaze/files.rb
Pistos-ramaze-2009.06.12 lib/ramaze/files.rb
manveru-ramaze-2009.04.01 lib/ramaze/files.rb
manveru-ramaze-2009.04.08 lib/ramaze/files.rb
manveru-ramaze-2009.04.18 lib/ramaze/files.rb
manveru-ramaze-2009.04.22 lib/ramaze/files.rb
manveru-ramaze-2009.04 lib/ramaze/files.rb
manveru-ramaze-2009.05.08 lib/ramaze/files.rb
manveru-ramaze-2009.05 lib/ramaze/files.rb
manveru-ramaze-2009.06.04 lib/ramaze/files.rb
manveru-ramaze-2009.06.12 lib/ramaze/files.rb
manveru-ramaze-2009.06 lib/ramaze/files.rb
manveru-ramaze-2009.07 lib/ramaze/files.rb
rjspotter-ramaze-2009.06.29 lib/ramaze/files.rb
rjspotter-ramaze-2009.06.31 lib/ramaze/files.rb
ramaze-2011.01.30 lib/ramaze/files.rb
ramaze-2011.01 lib/ramaze/files.rb
ramaze-2010.06.18 lib/ramaze/files.rb
ramaze-2010.04.04 lib/ramaze/files.rb
ramaze-2010.04 lib/ramaze/files.rb