pebble/devsite/config.ru

54 lines
1.3 KiB
Text
Raw Normal View History

require 'newrelic_rpm'
require 'rack/contrib/try_static'
require 'rack/rewrite'
require 'dotenv'
require 'rack/ssl-enforcer'
require 'rack/xframe-options'
require 'rack-host-redirect'
Dotenv.load
require 'dotenv'
def load_404
not_found_page = File.expand_path('../__public__/404.html', __FILE__)
File.read(not_found_page)
end
if ENV['RACK_ENV'] == 'development'
def not_found_html
load_404
end
else
use Rack::SslEnforcer,
:hsts => { :expires => 500, :subdomains => false },
:strict => true
not_found_html = load_404
end
use Rack::XFrameOptions, 'DENY'
# Determine if the C preview docs are enabled
docs_config = YAML.load_file('source/_data/docs.yaml')
preview_docs = docs_config.key?('c_preview')
use Rack::Rewrite do
# Redirect all old PebbleKit docs to their new location
r301 %r{/docs/js/(.*)}, '/docs/pebblekit-js/$1'
# Redirect C preview docs to main C docs if there are no preview docs
r302 %r{/docs/c/preview/?(.*)}, '/docs/c/$1' unless preview_docs
end
use Rack::HostRedirect, {
'developer.getpebble.com' => 'developer.pebble.com'
}
use Rack::TryStatic,
root: '__public__',
urls: %w(/),
try: %w(.html index.html /index.html)
run lambda{ |_env|
[404, { 'Content-Type' => 'text/html' }, [not_found_html]]
}