Class: Mindee::Parsing::V2::Field::ListField
- Defined in:
- lib/mindee/parsing/v2/field/list_field.rb
Overview
Represents a field that contains a list of items.
Instance Attribute Summary collapse
-
#items ⇒ Array<ListField | ObjectField | SimpleField>
readonly
Items contained in the list.
Attributes inherited from BaseField
#confidence, #indent_level, #locations
Instance Method Summary collapse
-
#initialize(server_response, indent_level = 0) ⇒ ListField
constructor
A new instance of ListField.
-
#object_items ⇒ Array<ObjectField>
Return only object fields.
-
#simple_items ⇒ Array<SimpleField>
Return only simple fields.
-
#to_s ⇒ String
String representation of the list field.
Methods inherited from BaseField
Constructor Details
#initialize(server_response, indent_level = 0) ⇒ ListField
Returns a new instance of ListField.
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/mindee/parsing/v2/field/list_field.rb', line 17 def initialize(server_response, indent_level = 0) super unless server_response.key?('items') && server_response['items'].is_a?(Array) raise Errors::MindeeError, "Expected \"items\" to be an array in #{server_response.to_json}." end @items = [] server_response['items'].each do |item| @items << BaseField.create_field(item, indent_level + 1) end end |
Instance Attribute Details
#items ⇒ Array<ListField | ObjectField | SimpleField> (readonly)
Returns Items contained in the list.
12 13 14 |
# File 'lib/mindee/parsing/v2/field/list_field.rb', line 12 def items @items end |
Instance Method Details
#object_items ⇒ Array<ObjectField>
Return only object fields.
47 48 49 50 51 52 53 54 55 |
# File 'lib/mindee/parsing/v2/field/list_field.rb', line 47 def object_items fields = [] @items.each do |item| raise TypeError, "Invalid field type detected: #{item.class}" unless item.is_a?(ObjectField) fields << item end fields end |
#simple_items ⇒ Array<SimpleField>
Return only simple fields.
34 35 36 37 38 39 40 41 42 |
# File 'lib/mindee/parsing/v2/field/list_field.rb', line 34 def simple_items fields = [] @items.each do |item| raise TypeError, "Invalid field type detected: #{item.class}" unless item.is_a?(SimpleField) fields << item end fields end |
#to_s ⇒ String
String representation of the list field.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/mindee/parsing/v2/field/list_field.rb', line 59 def to_s return '' unless @items && !@items.empty? parts = [''] @items.each do |item| next unless item parts << if item.is_a?(ObjectField) item.to_s_from_list else item.to_s end end parts.join("\n * ") end |