Class: JekyllOpenAPI::SchemaRenderer::TypeScript

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll_openapi/schema_renderer/typescript.rb

Overview

Renders a JSON-Schema as a simplified TypeScript-like textual representation.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger: JekyllOpenAPI.logger) ⇒ TypeScript

Returns a new instance of TypeScript.



7
8
9
# File 'lib/jekyll_openapi/schema_renderer/typescript.rb', line 7

def initialize(logger: JekyllOpenAPI.logger)
  @logger = logger
end

Class Method Details

.render(schema, logger: JekyllOpenAPI.logger) ⇒ Object



11
12
13
# File 'lib/jekyll_openapi/schema_renderer/typescript.rb', line 11

def self.render(schema, logger: JekyllOpenAPI.logger)
  new(logger: logger).render(schema)
end

Instance Method Details

#render(input, prefix = "") ⇒ String

Parameters:

  • input (Hash)

    a JSON-Schema

  • prefix (String) (defaults to: "")

    current indentation

Returns:

  • (String)


18
19
20
21
22
23
24
25
26
# File 'lib/jekyll_openapi/schema_renderer/typescript.rb', line 18

def render(input, prefix = "")
  unless input.is_a?(Hash)
    @logger.warn("not a valid schema object: #{input.inspect}")
    return ""
  end
  str = base(input, prefix)
  return "" if str.nil?
  annotate(str, input)
end