readme.rdoc

February 25, 2012 ยท View on GitHub

= sinatra-static

export your sinatra app to a directory of static files. requires "sinatra-advanced-routes". get requests and response-status 200 only (no redirects). you also have to copy the public-dir yourself (if you're using it).

== usage

require 'sinatra_static'

builder = SinatraStatic.new(MySinatraApp) builder.build!('/Users/paul/my_static_site')

= example

this simple app:

require 'sinatra' require "sinatra/advanced_routes" require 'sinatra_static'

class MyApp::App < Sinatra::Base

get '/' do    
  "my homepage"
end

get '/blog' do
  "blog index"
end

get '/blog/ajax.html' do
  "blog index w/o layout"
end

%w(page1 page2 page3).each do |page|
  get "/blog/#{page}" do
    "blog page: #{page}"
  end
end

get '/dynamic.js' do
  "my generated javascript"
end

get '/data.json' do
  "my generated json"
end

end

builder = SinatraStatic.new(MyApp:App) builder.build!('/Users/paul/my_static_site')

will generate this output:

~/my_static_site/index.html -> "my homepage" ~/my_static_site/blog/index.html -> "blog index" ~/my_static_site/blog/ajax.html -> "blog index w/o layout" ~/my_static_site/blog/page1/index.html -> "blog page: page1" ~/my_static_site/blog/page2/index.html -> "blog page: page2" ~/my_static_site/blog/page3/index.html -> "blog page: page3" ~/my_static_site/dynamic.js -> "my generated javascript" ~/my_static_site/data.json -> "my generated json"

= installation

gem install sinatra-static

or in your Gemfile

gem 'sinatra-static', '>= 0.1.1'