Module: Kumi::Core::Export::NodeSerializers
- Included in:
- Serializer
- Defined in:
- lib/kumi/core/export/node_serializers.rb
Instance Method Summary collapse
-
#serialize_attribute_declaration(node) ⇒ Object
Attribute Declaration: preserves name and expression tree.
-
#serialize_binding_reference(node) ⇒ Object
DeclarationReference Reference: critical for dependency resolution.
-
#serialize_call_expression(node) ⇒ Object
Call Expression: critical for dependency analysis.
-
#serialize_cascade_expression(node) ⇒ Object
Cascade Expression: preserve condition/result pairs.
-
#serialize_field_declaration(node) ⇒ Object
Field Declaration: preserves type info for analyzer.
-
#serialize_field_reference(node) ⇒ Object
Field Reference: critical for dependency resolution.
-
#serialize_list_expression(node) ⇒ Object
List Expression: preserve order and elements.
-
#serialize_literal(node) ⇒ Object
Literal: preserve exact value and Ruby type.
-
#serialize_root(node) ⇒ Object
Root node: top-level container.
-
#serialize_trait_declaration(node) ⇒ Object
Trait Declaration: preserves name and expression tree.
-
#serialize_when_case_expression(node) ⇒ Object
When Case Expression: individual case in cascade.
Instance Method Details
#serialize_attribute_declaration(node) ⇒ Object
Attribute Declaration: preserves name and expression tree
28 29 30 31 32 33 34 |
# File 'lib/kumi/core/export/node_serializers.rb', line 28 def serialize_attribute_declaration(node) { name: node.name.to_s, name_type: node.name.class.name, expression: serialize_node(node.expression) } end |
#serialize_binding_reference(node) ⇒ Object
DeclarationReference Reference: critical for dependency resolution
71 72 73 74 75 76 |
# File 'lib/kumi/core/export/node_serializers.rb', line 71 def serialize_binding_reference(node) { binding_name: node.name.to_s, name_type: node.name.class.name } end |
#serialize_call_expression(node) ⇒ Object
Call Expression: critical for dependency analysis
46 47 48 49 50 51 52 |
# File 'lib/kumi/core/export/node_serializers.rb', line 46 def serialize_call_expression(node) { function_name: node.fn_name.to_s, function_name_type: node.fn_name.class.name, arguments: node.args.map { |arg| serialize_node(arg) } } end |
#serialize_cascade_expression(node) ⇒ Object
Cascade Expression: preserve condition/result pairs
86 87 88 89 90 |
# File 'lib/kumi/core/export/node_serializers.rb', line 86 def serialize_cascade_expression(node) { cases: node.cases.map { |case_node| serialize_node(case_node) } } end |
#serialize_field_declaration(node) ⇒ Object
Field Declaration: preserves type info for analyzer
18 19 20 21 22 23 24 25 |
# File 'lib/kumi/core/export/node_serializers.rb', line 18 def serialize_field_declaration(node) { name: node.name.to_s, name_type: node.name.class.name, field_type: serialize_type(node.type), domain: serialize_domain(node.domain) } end |
#serialize_field_reference(node) ⇒ Object
Field Reference: critical for dependency resolution
63 64 65 66 67 68 |
# File 'lib/kumi/core/export/node_serializers.rb', line 63 def serialize_field_reference(node) { field_name: node.name.to_s, name_type: node.name.class.name } end |
#serialize_list_expression(node) ⇒ Object
List Expression: preserve order and elements
79 80 81 82 83 |
# File 'lib/kumi/core/export/node_serializers.rb', line 79 def serialize_list_expression(node) { elements: node.elements.map { |element| serialize_node(element) } } end |
#serialize_literal(node) ⇒ Object
Literal: preserve exact value and Ruby type
55 56 57 58 59 60 |
# File 'lib/kumi/core/export/node_serializers.rb', line 55 def serialize_literal(node) { value: node.value, ruby_type: node.value.class.name } end |
#serialize_root(node) ⇒ Object
Root node: top-level container
8 9 10 11 12 13 14 15 |
# File 'lib/kumi/core/export/node_serializers.rb', line 8 def serialize_root(node) { type: "root", inputs: node.inputs.map { |input| serialize_node(input) }, values: node.values.map { |attr| serialize_node(attr) }, traits: node.traits.map { |trait| serialize_node(trait) } } end |
#serialize_trait_declaration(node) ⇒ Object
Trait Declaration: preserves name and expression tree
37 38 39 40 41 42 43 |
# File 'lib/kumi/core/export/node_serializers.rb', line 37 def serialize_trait_declaration(node) { name: node.name.to_s, name_type: node.name.class.name, expression: serialize_node(node.expression) } end |
#serialize_when_case_expression(node) ⇒ Object
When Case Expression: individual case in cascade
93 94 95 96 97 98 |
# File 'lib/kumi/core/export/node_serializers.rb', line 93 def serialize_when_case_expression(node) { condition: serialize_node(node.condition), result: serialize_node(node.result) } end |