Sha256: 792ca5b61664c134e32a065b18c5437533035932de85380d8027d3194c89524a

Contents?: true

Size: 870 Bytes

Versions: 1

Compression:

Stored size: 870 Bytes

Contents

require 'rubygems'
require 'json/pure'

use Rack::Static,
  :root => File.dirname(__FILE__),
  :urls => %w(/vendor/css /vendor/lib /config.json /vendor/themes /vendor/images)
  
map '/' do
  run Proc.new { |env|
    [ 200, { 'Content-Type' => 'text/html', 'Cache-Control' => 'public, max-age=86400' }, [File.read('index.html')] ]
  }
end

map '/slides.json' do
  run Proc.new { |env|
    slides = Dir['slides/*[.html,.md,.markdown]']
    slides = slides.inject({}) do |result, slide|
      noext, name = File.basename(slide, File.extname(slide)), File.basename(slide)
      result[name] = {:markup => File.read(slide)}
      result[name][:script] = File.read("slides/#{noext}.js") if Dir["slides/#{noext}.js"].any?
      result
    end    
    [
      200,
      { 'Content-Type' => 'application/x-json', 'Pragma' => 'no-cache' },
      [slides.to_json]
    ] 
  }
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shining-2.0.1 lib/config.ru