Module: Kumi::Dev::GoldenV2
- Defined in:
- lib/kumi/dev/golden_v2.rb
Defined Under Namespace
Classes: Representation, Runner
Constant Summary
collapse
- REPRESENTATIONS =
[
Representation.new(name: "ast", extension: "txt", generator_method: :generate_ast),
Representation.new(name: "input_plan", extension: "txt", generator_method: :generate_input_plan),
Representation.new(name: "nast", extension: "txt", generator_method: :generate_nast),
Representation.new(name: "snast", extension: "txt", generator_method: :generate_snast),
Representation.new(name: "dfir", extension: "txt", generator_method: :generate_dfir),
Representation.new(name: "dfir_optimized", extension: "txt", generator_method: :generate_dfir_optimized),
Representation.new(name: "vecir", extension: "txt", generator_method: :generate_vecir),
Representation.new(name: "loopir", extension: "txt", generator_method: :generate_loopir),
Representation.new(name: "schema_ruby", extension: "rb", generator_method: :generate_schema_ruby),
Representation.new(name: "schema_javascript", extension: "mjs", generator_method: :generate_schema_javascript)
].freeze
- GROUPS =
{
"frontend" => %w[ast input_plan nast snast],
"df" => %w[dfir dfir_optimized],
"vec" => %w[vecir],
"loop" => %w[loopir],
"codegen" => %w[schema_ruby schema_javascript],
"all" => REPRESENTATIONS.map(&:name)
}.freeze
Class Method Summary
collapse
-
.diff!(*names, reprs: nil, base_dir: "golden", io: $stdout) ⇒ Object
-
.list(base_dir: "golden", io: $stdout) ⇒ Object
-
.normalize_names(raw) ⇒ Object
-
.normalize_repr_tokens(raw) ⇒ Object
-
.reprs(io: $stdout) ⇒ Object
-
.update!(*names, reprs: nil, base_dir: "golden", io: $stdout) ⇒ Object
-
.verify!(*names, reprs: nil, base_dir: "golden", io: $stdout) ⇒ Object
Class Method Details
.diff!(*names, reprs: nil, base_dir: "golden", io: $stdout) ⇒ Object
62
63
64
|
# File 'lib/kumi/dev/golden_v2.rb', line 62
def diff!(*names, reprs: nil, base_dir: "golden", io: $stdout)
Runner.new(base_dir:, io:).diff(names: normalize_names(names), reprs:)
end
|
.list(base_dir: "golden", io: $stdout) ⇒ Object
46
47
48
|
# File 'lib/kumi/dev/golden_v2.rb', line 46
def list(base_dir: "golden", io: $stdout)
Runner.new(base_dir:, io:).list_schemas
end
|
.normalize_names(raw) ⇒ Object
73
74
75
76
|
# File 'lib/kumi/dev/golden_v2.rb', line 73
def normalize_names(raw)
names = Array(raw).flatten.compact.map(&:to_s).reject(&:empty?)
names.empty? ? nil : names
end
|
.normalize_repr_tokens(raw) ⇒ Object
66
67
68
69
70
71
|
# File 'lib/kumi/dev/golden_v2.rb', line 66
def normalize_repr_tokens(raw)
Array(raw)
.flat_map { |entry| entry.to_s.split(",") }
.map(&:strip)
.reject(&:empty?)
end
|
.reprs(io: $stdout) ⇒ Object
.update!(*names, reprs: nil, base_dir: "golden", io: $stdout) ⇒ Object
54
55
56
|
# File 'lib/kumi/dev/golden_v2.rb', line 54
def update!(*names, reprs: nil, base_dir: "golden", io: $stdout)
Runner.new(base_dir:, io:).update(names: normalize_names(names), reprs:)
end
|
.verify!(*names, reprs: nil, base_dir: "golden", io: $stdout) ⇒ Object
58
59
60
|
# File 'lib/kumi/dev/golden_v2.rb', line 58
def verify!(*names, reprs: nil, base_dir: "golden", io: $stdout)
Runner.new(base_dir:, io:).verify(names: normalize_names(names), reprs:)
end
|