An open API service indexing awesome lists of open source software.

https://github.com/masylum/rack-staticifier

Staticly cache requests to any Rack application - perfect for creating static sites/blogs/etc!
https://github.com/masylum/rack-staticifier

Last synced: 10 months ago
JSON representation

Staticly cache requests to any Rack application - perfect for creating static sites/blogs/etc!

Awesome Lists containing this project

README

          

= Rack::Staticifier

Rack::Staticifier is Rack middleware for staticly caching responses.

== Install

$ gem sources -a http://gems.github.com
$ sudo gem install remi-rack-staticifier

== Usage

require 'rack/staticifier'

# this will cache ALL responses in a 'cache' directory
use Rack::Staticifier

# this will cache ALL responses in a 'public/my/cached/stuff' directory
use Rack::Staticifier, :root => 'public/my/cached/stuff'

# this will only cache requests with 'foo' in the URL
use Rack::Staticifier do |env, response|
env['PATH_INFO'].include?('foo')
end

# this will only cache requests with 'hi' in the response body
use Rack::Staticifier do |env, response|
# response is a regular Rack response, eg. [200, {}, ['hi there']]
body = ''
response.last.each {|string| body << string }
body.include?('hi')
end

# this will only cache requests with 'foo' in the URL (incase you don't want to pass a block)
use Rack::Staticifier, :cache_if => lambda { |env, response| env['PATH_INFO'].include?('foo') }

== TODO

* compare to Rack::ResponseCache (in rack-contrib) ... maybe that can replace this, or vice-versa?