class Jekyll::Commands::Serve::Servlet
Constants
- DEFAULTS
Public Class Methods
new(server, root, callbacks)
click to toggle source
Calls superclass method
# File lib/ngage/jekyll/commands/serve/servlet.rb, line 135 def initialize(server, root, callbacks) # So we can access them easily. @jekyll_opts = server.config[:JekyllOptions] set_defaults super end
Public Instance Methods
do_GET(req, res)
click to toggle source
rubocop:disable Naming/MethodName
Calls superclass method
# File lib/ngage/jekyll/commands/serve/servlet.rb, line 160 def do_GET(req, res) rtn = super if @jekyll_opts["livereload"] return rtn if SkipAnalyzer.skip_processing?(req, res, @jekyll_opts) processor = BodyProcessor.new(res.body, @jekyll_opts) processor.process! res.body = processor.new_body res.content_length = processor.content_length.to_s if processor.livereload_added # Add a header to indicate that the page content has been modified res["X-Rack-LiveReload"] = "1" end end validate_and_ensure_charset(req, res) res.header.merge!(@headers) rtn end
search_file(req, res, basename)
click to toggle source
Add the ability to tap file.html the same way that Nginx does on our Docker images (or on GitHub Pages.) The difference is that we might end up with a different preference on which comes first.
Calls superclass method
# File lib/ngage/jekyll/commands/serve/servlet.rb, line 152 def search_file(req, res, basename) # /file.* > /file/index.html > /file.html super || super(req, res, "#{basename}.html") || super(req, res, "#{basename}.xhtml") end
search_index_file(req, res)
click to toggle source
Calls superclass method
# File lib/ngage/jekyll/commands/serve/servlet.rb, line 142 def search_index_file(req, res) super || search_file(req, res, ".html") || search_file(req, res, ".xhtml") end
Private Instance Methods
set_defaults()
click to toggle source
# File lib/ngage/jekyll/commands/serve/servlet.rb, line 194 def set_defaults hash_ = @jekyll_opts.fetch("webrick", {}).fetch("headers", {}) DEFAULTS.each_with_object(@headers = hash_) do |(key, val), hash| hash[key] = val unless hash.key?(key) end end
validate_and_ensure_charset(_req, res)
click to toggle source
rubocop:enable Naming/MethodName
# File lib/ngage/jekyll/commands/serve/servlet.rb, line 185 def validate_and_ensure_charset(_req, res) key = res.header.keys.grep(%r!content-type!i).first typ = res.header[key] unless typ =~ %r!;\s*charset=! res.header[key] = "#{typ}; charset=#{@jekyll_opts["encoding"]}" end end