Skip to content

Instantly share code, notes, and snippets.

@thenathanjones
Created June 1, 2013 11:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thenathanjones/5690068 to your computer and use it in GitHub Desktop.
Save thenathanjones/5690068 to your computer and use it in GitHub Desktop.
###
# Compass
###
# Susy grids in Compass
# First: gem install susy
# require 'susy'
# Change Compass configuration
# compass_config do |config|
# config.output_style = :compact
# end
###
# Page options, layouts, aliases and proxies
###
# Per-page layout changes:
#
# With no layout
# page "/path/to/file.html", :layout => false
#
# With alternative layout
# page "/path/to/file.html", :layout => :otherlayout
#
# A path which all have the same layout
# with_layout :admin do
# page "/admin/*"
# end
# Proxy (fake) files
# page "/this-page-has-no-template.html", :proxy => "/template-file.html" do
# @which_fake_page = "Rendering a fake page with a variable"
# end
###
# Helpers
###
# Automatic image dimensions on image_tag helper
# activate :automatic_image_sizes
# Methods defined in the helpers block are available in templates
# helpers do
# def some_helper
# "Helping"
# end
# end
set :css_dir, 'stylesheets'
set :js_dir, 'javascripts'
set :images_dir, 'images'
# Build-specific configuration
configure :build do
# For example, change the Compass output style for deployment
# activate :minify_css
# Minify Javascript on build
# activate :minify_javascript
# Enable cache buster
# activate :cache_buster
# Use relative URLs
# activate :relative_assets
# Compress PNGs after build
# First: gem install middleman-smusher
# require "middleman-smusher"
# activate :smusher
# Or use a different image path
# set :http_path, "/Content/images/"
end
require 'rack'
require 'rack/contrib/try_static'
require './hullapp'
# First, `use` our hullapp middleware
use HullApp
# Then `use` the trystatic middleware
use Rack::TryStatic, :root => "build", :urls => %w[/], :try => ['.html', 'index.html', '/index.html']
# Lastly, fallback to a 404 - since it's the Last one, we `run` it.
run lambda{ |env|
not_found_page = File.expand_path("./build/404/index.html", __FILE__)
if File.exist?(not_found_page)
[ 404, { 'Content-Type' => 'text/html'}, [File.read(not_found_page)] ]
else
[ 404, { 'Content-Type' => 'text/html' }, ['404 - page not found'] ]
end
}
require 'sinatra'
require 'sinatra/base'
require 'json' # Always handy
class HullApp < Sinatra::Base
# Fall back to this when needed
set :static, true
set :public_folder, File.dirname(__FILE__) + '/build'
# Define a form submit route, in POST
get '/subscribe' do
# Last arg is sent to the browser
params.to_json
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment