Sha256: b42a8dab3021fa0d96b570c23bfb0c38adcbce8f64faa9699c712d22bed52792
Contents?: true
Size: 1.16 KB
Versions: 6
Compression:
Stored size: 1.16 KB
Contents
require 'command_handler' require 'json' require 'serializer' module Beryl class Backend def call(env) req = Rack::Request.new(env) case req.path_info when '/command' [200, { 'Content-Type' => 'application/json; charset=utf-8' }, [handle_command(req)]] else [200, { 'Content-Type' => 'text/html; charset=utf-8' }, [response]] end end private def handle_command(req) json = JSON.parse(req.body.read) result = CommandHandler.new.handle(json['type'].to_sym, json['payload']) Serializer.serialize(result) end def hydrate_state Serializer.serialize(eval(File.read('app/initial_state.rb'))).gsub('"', '"') end def response <<~HEREDOC <!DOCTYPE html> <html> <head> <script src="build/app.js"></script> <link rel="stylesheet" type="text/css" href="build/style.css"> </head> <body> <div id="beryl" data-beryl="#{hydrate_state}" class="bg-color-255-255-255-255 font-color-0-0-0-255 font-size-20 font-open-sanshelveticaverdanasans-serif s e ui s e"></div> </body> </html> HEREDOC end end end
Version data entries
6 entries across 6 versions & 1 rubygems