diff --git a/lib/app.rb b/lib/app.rb index 21945c91..aad1c3d8 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -21,27 +21,17 @@ class App < Sinatra::Application set :cdn_origin, '' 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_path, File.join(public_folder, assets_prefix) + set :assets_manifest_path, File.join(assets_path, 'manifest.json') set :assets_compile, %w(*.png docs.js docs.json application.js application.css application-dark.css) require 'yajl/json_gem' set :docs_prefix, 'docs' - set :docs_origin, -> { File.join('', docs_prefix) } - set :docs_path, -> { File.join(public_folder, docs_prefix) } - set :docs_manifest_path, -> { File.join(docs_path, 'docs.json') } + set :docs_origin, File.join('', docs_prefix) + set :docs_path, File.join(public_folder, docs_prefix) + set :docs_manifest_path, File.join(docs_path, 'docs.json') set :default_docs, %w(css dom dom_events html http javascript) - set :docs, -> { - Hash[JSON.parse(File.read(docs_manifest_path)).map! { |doc| - doc['full_name'] = doc['name'].dup - doc['full_name'] << " #{doc['version']}" if doc['version'] - doc['slug_without_version'] = doc['slug'].split('~').first - [doc['slug'], doc] - }] - } - - set :news_path, -> { File.join(root, assets_prefix, 'javascripts', 'news.json') } - set :news, -> { JSON.parse(File.read(news_path)) } + set :news_path, File.join(root, assets_prefix, 'javascripts', 'news.json') set :csp, false @@ -103,7 +93,30 @@ class App < Sinatra::Application end configure :test do - set :docs_manifest_path, -> { File.join(root, 'test', 'files', 'docs.json') } + set :docs_manifest_path, File.join(root, 'test', 'files', 'docs.json') + end + + def self.parse_docs + Hash[JSON.parse(File.read(docs_manifest_path)).map! { |doc| + doc['full_name'] = doc['name'].dup + doc['full_name'] << " #{doc['version']}" if doc['version'] + doc['slug_without_version'] = doc['slug'].split('~').first + [doc['slug'], doc] + }] + end + + def self.parse_news + JSON.parse(File.read(news_path)) + end + + configure :development, :test do + set :docs, -> { parse_docs } + set :news, -> { parse_news } + end + + configure :production do + set :docs, parse_docs + set :news, parse_news end helpers do