Class: Kumi::Core::Export::Serializer

Inherits:
Object
  • Object
show all
Includes:
NodeSerializers
Defined in:
lib/kumi/core/export/serializer.rb

Instance Method Summary collapse

Methods included from NodeSerializers

#serialize_attribute_declaration, #serialize_binding_reference, #serialize_call_expression, #serialize_cascade_expression, #serialize_field_declaration, #serialize_field_reference, #serialize_list_expression, #serialize_literal, #serialize_root, #serialize_trait_declaration, #serialize_when_case_expression

Constructor Details

#initialize(pretty: false, include_locations: false) ⇒ Serializer

Returns a new instance of Serializer.



9
10
11
12
# File 'lib/kumi/core/export/serializer.rb', line 9

def initialize(pretty: false, include_locations: false)
  @pretty = pretty
  @include_locations = include_locations
end

Instance Method Details

#serialize(syntax_root) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/kumi/core/export/serializer.rb', line 14

def serialize(syntax_root)
  json_data = {
    kumi_version: VERSION,
    ast: serialize_root(syntax_root)
  }

  @pretty ? JSON.pretty_generate(json_data) : JSON.generate(json_data)
end