File tree Expand file tree Collapse file tree
lib/mindee/parsing/v2/field
sig/mindee/parsing/v2/field Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -96,6 +96,38 @@ def get_list_field(key)
9696
9797 field
9898 end
99+
100+ # Get a field by key and ensure it is an ObjectField.
101+ # @param key [String] Field key to retrieve.
102+ # @return [ObjectField] The ObjectField.
103+ # @raise [TypeError] If the field is not an ObjectField.
104+ def get_object_field ( key )
105+ field = @fields . get_object_field ( key )
106+ raise TypeError , "Field #{ key } is not an ObjectField" unless field . is_a? ( ObjectField )
107+
108+ field
109+ end
110+
111+ # Get all simple fields.
112+ # @return [Hash<String, SimpleField>] Simple fields contained in the object.
113+ def simple_fields
114+ # @type var fields: Hash<String, SimpleField>
115+ @fields . select { |_ , value | value . is_a? ( SimpleField ) }
116+ end
117+
118+ # Get all list fields.
119+ # @return [Hash<String, ListField>] List fields contained in the object.
120+ def list_fields
121+ # @type var fields: Hash<String, ListField>
122+ @fields . select { |_ , value | value . is_a? ( ListField ) }
123+ end
124+
125+ # Get all object fields.
126+ # @return [Hash<String, ObjectField>] Object fields contained in the object.
127+ def object_fields
128+ # @type var fields: Hash<String, ObjectField>
129+ @fields . select { |_ , value | value . is_a? ( ObjectField ) }
130+ end
99131 end
100132 end
101133 end
Original file line number Diff line number Diff line change 1- # TypeProf 0.30.1
2-
1+ # lib/mindee/parsing/v2/field/object_field.rb
32module Mindee
43 module Parsing
54 module V2
@@ -9,9 +8,14 @@ module Mindee
98 attr_reader fields: InferenceFields
109 def initialize : (Hash[String | Symbol, untyped ], ?Integer) -> void
1110
11+ def get_simple_field : (String) -> SimpleField
1212 def get_list_field : (String) -> ListField
13+ def get_object_field : (String) -> ObjectField
14+
15+ def simple_fields : () -> Hash[String, SimpleField]
16+ def list_fields : () -> Hash[String, ListField]
17+ def object_fields : () -> Hash[String, ObjectField]
1318
14- def get_simple_field : (String) -> SimpleField
1519 def multi_str : -> String
1620 def single_str : -> String
1721 def to_s : -> String
Original file line number Diff line number Diff line change @@ -149,7 +149,12 @@ def load_v2_inference(resource_path)
149149 expect ( fields [ 'field_object' ] ) . to be_a ( object_field )
150150
151151 field_object = fields . get_object_field ( 'field_object' )
152+ expect ( field_object . get_simple_field ( 'sub_object_simple' ) ) . to be_a ( simple_field )
152153 expect ( field_object . get_list_field ( 'sub_object_list' ) ) . to be_a ( list_field )
154+ expect ( field_object . get_object_field ( 'sub_object_object' ) ) . to be_a ( object_field )
155+ expect ( field_object . simple_fields . length ) . to eq ( 1 )
156+ expect ( field_object . list_fields . length ) . to eq ( 1 )
157+ expect ( field_object . object_fields . length ) . to eq ( 1 )
153158 lvl1 = field_object . fields
154159 expect ( lvl1 [ 'sub_object_list' ] ) . to be_a ( list_field )
155160 expect ( lvl1 [ 'sub_object_list' ] . items ) . not_to be_empty
You can’t perform that action at this time.
0 commit comments