Skip to content

Instantly share code, notes, and snippets.

@cfcosta
Created September 2, 2012 03:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cfcosta/3594414 to your computer and use it in GitHub Desktop.
Save cfcosta/3594414 to your computer and use it in GitHub Desktop.
Sinatra application for serving simple Single Page Applications
require 'bundler/setup'
Bundler.require
class Application < Sinatra::Base
get '/assets/:file' do
env['PATH_INFO'].gsub!("/assets","")
asset_handler.call(env)
end
get '/' do
erb :index
end
private
def project_root
@project_root ||= File.expand_path File.dirname(__FILE__)
end
def asset_handler
@asset_handler ||= create_asset_handler
end
def create_asset_handler
handler = Sprockets::Environment.new(project_root)
handler.cache = Sprockets::Cache::FileStore.new("/tmp")
handler.append_path(File.join(project_root, 'src/javascripts'))
handler.append_path(File.join(project_root, 'src/stylesheets'))
handler
end
end
run Application
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment