Class: Mindee::Parsing::V2::Field::ObjectField
- Defined in:
- lib/mindee/parsing/v2/field/object_field.rb
Overview
A field containing a nested set of inference fields.
Instance Attribute Summary collapse
-
#fields ⇒ InferenceFields
readonly
Fields contained in the object.
Attributes inherited from BaseField
#confidence, #indent_level, #locations
Instance Method Summary collapse
-
#get_list_field(key) ⇒ ListField
Get a field by key and ensure it is a ListField.
-
#get_object_field(key) ⇒ ObjectField
Get a field by key and ensure it is an ObjectField.
-
#get_simple_field(key) ⇒ SimpleField
Get a field by key and ensure it is a SimpleField.
-
#initialize(raw_prediction, indent_level = 0) ⇒ ObjectField
constructor
A new instance of ObjectField.
-
#list_fields ⇒ Hash<String, ListField>
Get all list fields.
-
#multi_str ⇒ String
String representation for multi-object display.
-
#object_fields ⇒ Hash<String, ObjectField>
Get all object fields.
-
#simple_fields ⇒ Hash<String, SimpleField>
Get all simple fields.
-
#single_str ⇒ String
String representation of a single object field.
-
#to_s ⇒ String
String representation of the object field.
-
#to_s_from_list ⇒ String
String representation suitable for list display.
Methods inherited from BaseField
Constructor Details
#initialize(raw_prediction, indent_level = 0) ⇒ ObjectField
Returns a new instance of ObjectField.
17 18 19 20 21 22 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 17 def initialize(raw_prediction, indent_level = 0) super inner_fields = raw_prediction.fetch('fields', raw_prediction) @fields = InferenceFields.new(inner_fields, @indent_level + 1) end |
Instance Attribute Details
#fields ⇒ InferenceFields (readonly)
Returns Fields contained in the object.
13 14 15 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 13 def fields @fields end |
Instance Method Details
#get_list_field(key) ⇒ ListField
Get a field by key and ensure it is a ListField.
93 94 95 96 97 98 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 93 def get_list_field(key) field = @fields.get_list_field(key) raise TypeError, "Field #{key} is not a ListField" unless field.is_a?(ListField) field end |
#get_object_field(key) ⇒ ObjectField
Get a field by key and ensure it is an ObjectField.
104 105 106 107 108 109 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 104 def get_object_field(key) field = @fields.get_object_field(key) raise TypeError, "Field #{key} is not an ObjectField" unless field.is_a?(ObjectField) field end |
#get_simple_field(key) ⇒ SimpleField
Get a field by key and ensure it is a SimpleField.
85 86 87 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 85 def get_simple_field(key) @fields.get_simple_field(key) end |
#list_fields ⇒ Hash<String, ListField>
Get all list fields.
120 121 122 123 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 120 def list_fields # @type var fields: Hash<String, ListField> @fields.select { |_, value| value.is_a?(ListField) } end |
#multi_str ⇒ String
String representation for multi-object display
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 60 def multi_str return '' unless @fields && !@fields.empty? out_str = '' indent = ' ' * @indent_level first = true @fields.each do |field_key, field_value| value_str = field_value ? field_value.to_s : '' if first out_str += "#{indent}:#{field_key}: #{value_str}" first = false else out_str += "\n#{indent} :#{field_key}: #{value_str}" end end out_str end |
#object_fields ⇒ Hash<String, ObjectField>
Get all object fields.
127 128 129 130 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 127 def object_fields # @type var fields: Hash<String, ObjectField> @fields.select { |_, value| value.is_a?(ObjectField) } end |
#simple_fields ⇒ Hash<String, SimpleField>
Get all simple fields.
113 114 115 116 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 113 def simple_fields # @type var fields: Hash<String, SimpleField> @fields.select { |_, value| value.is_a?(SimpleField) } end |
#single_str ⇒ String
String representation of a single object field
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 44 def single_str return '' unless @fields && !@fields.empty? out_str = '' indent = ' ' * @indent_level @fields.each do |field_key, field_value| value_str = field_value && !field_value.to_s.empty? ? field_value.to_s : '' out_str += "\n#{indent} :#{field_key}: #{value_str}" end out_str end |
#to_s ⇒ String
String representation of the object field.
26 27 28 29 30 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 26 def to_s return "\n" unless @fields && !@fields.empty? "\n#{@fields.to_s(1)}" end |
#to_s_from_list ⇒ String
String representation suitable for list display.
34 35 36 37 38 39 40 |
# File 'lib/mindee/parsing/v2/field/object_field.rb', line 34 def to_s_from_list return '' if @fields.nil? return '' unless @fields && !@fields.empty? field_str = @fields.to_s(2) field_str.length > 4 ? (field_str[4..] || '') : '' end |