Class Capcode::StaticFiles
In: lib/capcode.rb
Parent: Object

Static file loader

Use :

  set :static, "path/to/static"

Methods

call   new  

Public Class methods

[Source]

     # File lib/capcode.rb, line 352
352:     def initialize(app)
353:       @app = app
354:     end

Public Instance methods

[Source]

     # File lib/capcode.rb, line 356
356:     def call(env)
357:       static = File.expand_path( File.join(Capcode::Configuration.get(:root), Capcode::Configuration.get(:static) ) )
358:       file = File.join(static, env['REQUEST_PATH'].split("/") )
359:       file = File.join(file, "index.html" ) if File.directory?(file)
360:       if File.exist?(file)
361:         body = [::File.read(file)]
362:         header = {
363:           "Last-Modified" => ::File.mtime(file).httpdate,
364:           "Content-Type" => ::Rack::Mime.mime_type(::File.extname(file), 'text/plain'),
365:           "Content-Length" => body.first.size.to_s
366:         }
367:         return [200, header, body]
368:       else
369:         return @app.call(env)
370:       end
371:       
372:       return @app.call(env)
373:     end

[Validate]