Class: Foobara::RemoteGenerator::Generators::ErrorGenerator
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary
#belongs_to_dependency_group, #relevant_manifest
Instance Method Summary
collapse
#==, #attributes_to_ts_type, #auto_dirty_queries?, #collision_winners, #custom_type_to_ts_type_name, #dependency_group, #dependency_roots, #domain_name, #foobara_type_to_ts_type, #hash, #import_destructure, #import_path, #import_path_array, #initialize, manifest_to_generator_classes, #model_to_ts_model_name, #organization_name, #parent, #path_to_root, #templates_dir, #ts_instance_full_name, #ts_instance_full_path, #ts_instance_path, #value_to_ts_value, #will_define
#==, #absolute_template_path, #applicable?, #dependencies_to_generate, #eql?, #erb_template, #generate, generator_for, #generator_for, generators_for, #generators_for, #hash, #initialize, manifest_to_generator_classes, #method_missing, #path_to_root, #respond_to_missing?, #target_dir, #template_string, #templates_dir
#inspect, truncating
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Foobara::FilesGenerator
Instance Method Details
#context_ts_type ⇒ Object
49
50
51
52
53
54
55
56
|
# File 'src/generators/error_generator.rb', line 49
def context_ts_type
if context_type_declaration.is_a?(Manifest::Attributes) && context_type_declaration.empty?
"Record<string, never>"
else
foobara_type_to_ts_type(context_type_declaration, dependency_group:)
end
end
|
#context_type_declaration ⇒ Object
43
44
45
46
47
|
# File 'src/generators/error_generator.rb', line 43
def context_type_declaration
@context_type_declaration ||= Manifest::TypeDeclaration.new(
root_manifest, [*manifest_path, :context_type_declaration]
)
end
|
#dependencies ⇒ Object
58
59
60
|
# File 'src/generators/error_generator.rb', line 58
def dependencies
@dependencies ||= types_depended_on.select { |type| type.detached_entity? || type.custom? || type.model? }
end
|
#error_base_class ⇒ Object
30
31
32
33
34
35
36
37
|
# File 'src/generators/error_generator.rb', line 30
def error_base_class
case category
when "data"
"DataError"
else
"RuntimeError"
end
end
|
#target_path ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'src/generators/error_generator.rb', line 9
def target_path
p = parent
basename = "#{error_name}.ts".split("::")
prefix = case p
when OrganizationGenerator, DomainGenerator, CommandGenerator
[*p.target_dir, "errors"]
when TypeGenerator
[*p.target_dir, p.type_short_name, "errors"]
when nil
raise "Expected #{error_name} to have a parent but it did not"
else
p.target_dir
end
[*prefix, *basename]
end
|
#template_path ⇒ Object
39
40
41
|
# File 'src/generators/error_generator.rb', line 39
def template_path
"Error.ts.erb"
end
|