@@ -70,6 +70,11 @@ def to_namespaced_class_name(namespaces, name)
7070 components . join ( "::" )
7171 end
7272
73+ def to_absolute_class_name ( outer_namespaces , namespaces , name )
74+ namespaces = outer_namespaces + namespaces if outer_namespaces
75+ "::#{ to_namespaced_class_name ( namespaces , name ) } "
76+ end
77+
7378 def to_constant_name ( name )
7479 to_upper_snake_case ( name )
7580 end
@@ -241,7 +246,9 @@ def generate_enum(writer, enum)
241246 if enum . union?
242247 union = @schema . objects [ value . union_type . index ]
243248 *union_namespaces , union_name = denamespace ( union . name )
244- klass = "::#{ to_namespaced_class_name ( union_namespaces , union_name ) } "
249+ klass = to_absolute_class_name ( @outer_namespaces ,
250+ union_namespaces ,
251+ union_name )
245252 relative_union_namespaces =
246253 resolve_namespaces ( union_namespaces , namespaces )
247254 path_components = relative_union_namespaces . collect do |ns |
@@ -578,7 +585,7 @@ def resolve_class_name(type,
578585 to_namespaced_class_name ( relative_namespaces , name )
579586 else
580587 # We need to use absolute hierarchy
581- ":: #{ to_namespaced_class_name ( namespaces , name ) } "
588+ to_absolute_class_name ( @outer_namespaces , namespaces , name )
582589 end
583590 end
584591 end
0 commit comments