Sprockets bez Rails

Pro vývoj velmi výkonné webové aplikace v jazyce D, která je tvořena podle prototypu v Ruby on Rails, jsem na internetu našel a specificky upravil krátky Rack skript, který vytvoří http server pro robustní klientské skriptování v CoffeScriptu. Lze využívat všechny výhody Sprockets tak, jak je zvykem v Rails a při každém dotazu na soubory se CoffeeScript i Sass zkompilují.

Skript uložte s názvem config.ru a z jeho adresáře spouštějte příkazem rackup. Server poté naslouchá na portu 9292. Je potřeba mít nainstalované sprockets, rack, rack-mount a asi i sass, coffee-script a možná ještě nějaké.

gem install sprockets rack rack-mount sass coffee-script
require 'sprockets'
require 'rack'
require 'rack/mount'

project_root = File.expand_path(File.dirname(__FILE__))
Assets = Sprockets::Environment.new(File.dirname(__FILE__))

Assets.append_path(File.join(project_root, 'assets'))
Assets.append_path(File.join(project_root, 'assets', 'javascripts'))
Assets.append_path(File.join(project_root, 'assets', 'stylesheets'))

Routes = Rack::Mount::RouteSet.new do |set|
  set.add_route Assets, :path_info => %r{^/assets}

  map "/assets" do
    run Assets
  end
end

run Routes

Takto lze programovat CoffeeScript a Sass k serverové aplikaci v libovolném jazyce nebo frameworku