Class: Rack::Statik

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

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ Statik

Returns a new instance of Statik.



3
4
5
6
7
8
9
# File 'lib/frank/statik.rb', line 3

def initialize(app, options={})
  @app = app
  frank_root = File.expand_path(File.dirname(__FILE__)) + '/templates'
  root = options[:root] || Dir.pwd
  @frank_server = Rack::File.new(frank_root)
  @static_server = Rack::File.new(root)
end

Instance Method Details

#call(env) ⇒ Object

handles serving from __frank__ looks for static access, if not found, passes request to frank



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/frank/statik.rb', line 14

def call(env)
  path = env['PATH_INFO']
 
  if path.include? '__frank__'
    env['PATH_INFO'].gsub!('/__frank__', '')
    result = @frank_server.call(env)
  elsif path.index('/') == 0
    result = @static_server.call(env)
  end
  return result if result[0] == 200
  @app.call(env)
end