0.04
No commit activity in last 3 years
No release in over 3 years
export your sinatra app to a directory of static files
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

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'