From 0c15e192e22f29d8e0d7d4ead4ffae10585e515f Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 1 Mar 2015 18:20:09 -0500 Subject: [PATCH] Add /docs.json route redirecting to the most recent doc manifest on the CDN cc @trollixx --- lib/app.rb | 8 ++++++-- test/app_test.rb | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/app.rb b/lib/app.rb index 9ee34441..0c215850 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -17,7 +17,7 @@ class App < Sinatra::Application set :assets_prefix, 'assets' set :assets_path, -> { File.join(public_folder, assets_prefix) } set :assets_manifest_path, -> { File.join(assets_path, 'manifest.json') } - set :assets_compile, %w(*.png docs.js application.js application.css application-dark.css) + set :assets_compile, %w(*.png docs.js docs.json application.js application.css application-dark.css) require 'yajl/json_gem' set :docs_prefix, 'docs' @@ -64,7 +64,7 @@ class App < Sinatra::Application use Rack::Deflater use Rack::Static, root: 'public', - urls: %w(/assets /docs /images /favicon.ico /robots.txt /opensearch.xml /manifest.webapp), + urls: %w(/assets /docs/ /images /favicon.ico /robots.txt /opensearch.xml /manifest.webapp), header_rules: [ [:all, {'Cache-Control' => 'no-cache, max-age=0'}], ['/assets', {'Cache-Control' => 'public, max-age=604800'}], @@ -171,6 +171,10 @@ class App < Sinatra::Application 200 end + get '/docs.json' do + redirect asset_path('docs.json') + end + get '/s/maxcdn' do redirect 'https://www.maxcdn.com/?utm_source=devdocs&utm_medium=banner&utm_campaign=devdocs' end diff --git a/test/app_test.rb b/test/app_test.rb index 601032a2..81240d11 100644 --- a/test/app_test.rb +++ b/test/app_test.rb @@ -173,6 +173,14 @@ class AppTest < MiniTest::Spec end end + describe "/docs.json" do + it "returns to the asset path" do + get '/docs.json' + assert last_response.redirect? + assert_equal 'http://example.org/assets/docs.json', last_response['Location'] + end + end + describe "/feed" do it "returns an atom feed" do get '/feed'