Class: CanvasERD::WebApplication
- Inherits:
-
Object
- Object
- CanvasERD::WebApplication
- Defined in:
- lib/canvas_erd/server.rb
Constant Summary collapse
- WEB_ROOT =
File.("web", __dir__)
- STATIC_FILES =
{ "/" => ["index.html", "text/html; charset=utf-8"], "/assets/app.js" => ["app.js", "application/javascript; charset=utf-8"], "/assets/document.js" => ["document.js", "application/javascript; charset=utf-8"], "/assets/layout.js" => ["layout.js", "application/javascript; charset=utf-8"], "/assets/png.js" => ["png.js", "application/javascript; charset=utf-8"], "/assets/styles.css" => ["styles.css", "text/css; charset=utf-8"], "/assets/fabric.min.js" => ["vendor/fabric.min.js", "application/javascript; charset=utf-8"], "/assets/elk-api.js" => ["vendor/elk-api.js", "application/javascript; charset=utf-8"], "/assets/elk-worker.min.js" => ["vendor/elk-worker.min.js", "application/javascript; charset=utf-8"] }.freeze
Instance Attribute Summary collapse
-
#schema ⇒ Object
readonly
Returns the value of attribute schema.
Instance Method Summary collapse
- #call(environment) ⇒ Object
-
#initialize(schema:, schema_provider: nil, state: nil, diagram_store: nil) ⇒ WebApplication
constructor
A new instance of WebApplication.
Constructor Details
#initialize(schema:, schema_provider: nil, state: nil, diagram_store: nil) ⇒ WebApplication
Returns a new instance of WebApplication.
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/canvas_erd/server.rb', line 24 def initialize(schema:, schema_provider: nil, state: nil, diagram_store: nil) @schema = schema @schema_provider = schema_provider || -> { schema } @diagram_store = diagram_store @schema_mutex = Mutex.new @document = { "format" => "canvas_erd", "version" => 1, "schema" => schema, "state" => state } end |
Instance Attribute Details
#schema ⇒ Object (readonly)
Returns the value of attribute schema.
22 23 24 |
# File 'lib/canvas_erd/server.rb', line 22 def schema @schema end |
Instance Method Details
#call(environment) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/canvas_erd/server.rb', line 37 def call(environment) method = environment.fetch("REQUEST_METHOD") path = environment.fetch("PATH_INFO") status, headers, body = route(method, path, environment) body = [] if method == "HEAD" [status, security_headers.merge(headers), body] rescue DiagramStore::NotFound => error status, headers, body = response(404, "text/plain; charset=utf-8", error.) [status, security_headers.merge(headers), method == "HEAD" ? [] : body] rescue DiagramStore::Error => error status, headers, body = response(400, "text/plain; charset=utf-8", error.) [status, security_headers.merge(headers), method == "HEAD" ? [] : body] end |