Class: Ucode::Repo::Writers::EnumsWriter

Inherits:
Object
  • Object
show all
Includes:
AtomicWrites
Defined in:
lib/ucode/repo/writers/enums_writer.rb

Overview

Writes output/enums.json carrying the full property-alias and property-value-alias tables.

One of the eight per-concern writers split out from AggregateWriter — see Candidate 5 of the 2026-06-29 review.

Instance Method Summary collapse

Methods included from AtomicWrites

#same_content?, #to_pretty_json, #write_atomic

Constructor Details

#initialize(output_root:, property_aliases:, property_value_aliases:) ⇒ EnumsWriter

Returns a new instance of EnumsWriter.

Parameters:



20
21
22
23
24
# File 'lib/ucode/repo/writers/enums_writer.rb', line 20

def initialize(output_root:, property_aliases:, property_value_aliases:)
  @output_root = output_root
  @property_aliases = property_aliases
  @property_value_aliases = property_value_aliases
end

Instance Method Details

#writeInteger

Returns 1 if written, 0 otherwise.

Returns:

  • (Integer)

    1 if written, 0 otherwise



27
28
29
30
31
32
33
34
# File 'lib/ucode/repo/writers/enums_writer.rb', line 27

def write
  path = Pathname(@output_root).join("enums.json")
  payload = {
    "properties"      => @property_aliases.map(&:to_yaml_hash),
    "property_values" => @property_value_aliases.map(&:to_yaml_hash),
  }
  write_atomic(path, to_pretty_json(payload)) ? 1 : 0
end