class JMV::Servlet

Constants

TEMPLATE_PATH

Public Instance Methods

do_GET(_request, response) click to toggle source
# File lib/jmv.rb, line 14
def do_GET(_request, response)
  metadata_file = @server.config[:ResourcePath]
  metadata = read metadata_file

  context = {
    'app'  => {
      'name'    => 'Jekyll Metadata file Viewer',
      'version' => JMV::VERSION,
    },
    'data' => {
      'path' => metadata_file,
      'data' => metadata,
      'json' => JSON.pretty_generate(metadata),
    }
  }

  # Repeat on every browser window refresh
  template_contents = File.binread(TEMPLATE_PATH)
  rendered_contents = Liquid::Template.parse(template_contents).render(context)

  response.status = 200
  response['Content-Type'] = 'text/html'
  response.body = rendered_contents
end

Private Instance Methods

read(file) click to toggle source
# File lib/jmv.rb, line 41
def read(file)
  Marshal.load(File.binread(file))
rescue StandardError => e
  puts "  Error loading #{file}: #{e}"
  raise e
end