lib/jekyll-admin/server.rb in jekyll-admin-0.9.0 vs lib/jekyll-admin/server.rb in jekyll-admin-0.10.0
- old
+ new
@@ -1,5 +1,7 @@
+# frozen_string_literal: true
+
module JekyllAdmin
class Server < Sinatra::Base
ROUTES = %w(collections configuration data drafts pages static_files).freeze
include JekyllAdmin::PathHelper
include JekyllAdmin::FileHelper
@@ -29,10 +31,15 @@
status 204
end
private
+ def json(object, options = {})
+ content_type :json
+ JSON.pretty_generate(object, options)
+ end
+
def site
JekyllAdmin.site
end
def render_404
@@ -56,18 +63,21 @@
def front_matter
request_payload["front_matter"]
end
def document_body
- body = if front_matter && !front_matter.empty?
- YAML.dump(restored_front_matter).strip
- .gsub(": 'null'", ": null") # restore null values
- else
- "---"
- end
+ body = +""
+ body << if front_matter && !front_matter.empty?
+ YAML.dump(restored_front_matter).strip
+ .gsub(": 'null'", ": null") # restore null values
+ else
+ "---"
+ end
body << "\n---\n\n"
body << request_payload["raw_content"].to_s
+ body << "\n" unless body.end_with?("\n")
+ body
end
alias_method :page_body, :document_body
def request_body
@request_body ||= begin
@@ -89,11 +99,10 @@
end.to_h
end
end
end
-require "jekyll-admin/server/collection"
-require "jekyll-admin/server/configuration"
-require "jekyll-admin/server/data"
-require "jekyll-admin/server/draft"
-require "jekyll-admin/server/page"
-require "jekyll-admin/server/static_file"
+# load individual route configurations
+JekyllAdmin::Server::ROUTES.each { |name| require_relative File.join("server", name) }
+
+# load namespaces outside route configurations
+require_relative "server/site_meta"