lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rb
# frozen_string_literal: true require_relative '../../parsing' module Mindee module Product module BillOfLading # The goods being shipped. class BillOfLadingV1CarrierItem < Mindee::Parsing::Standard::FeatureField include Mindee::Parsing::Standard # A description of the item. # @return [String] attr_reader :description # The gross weight of the item. # @return [Float] attr_reader :gross_weight # The measurement of the item. # @return [Float] attr_reader :measurement # The unit of measurement for the measurement. # @return [String] attr_reader :measurement_unit # The quantity of the item being shipped. # @return [Float] attr_reader :quantity # The unit of measurement for weights. # @return [String] attr_reader :weight_unit # @param prediction [Hash] # @param page_id [Integer, nil] def initialize(prediction, page_id) super @description = prediction['description'] @gross_weight = prediction['gross_weight'] @measurement = prediction['measurement'] @measurement_unit = prediction['measurement_unit'] @quantity = prediction['quantity'] @weight_unit = prediction['weight_unit'] @page_id = page_id end # @return [Hash] def printable_values printable = {} printable[:description] = format_for_display(@description) printable[:gross_weight] = @gross_weight.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@gross_weight) printable[:measurement] = @measurement.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@measurement) printable[:measurement_unit] = format_for_display(@measurement_unit) printable[:quantity] = @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity) printable[:weight_unit] = format_for_display(@weight_unit) printable end # @return [Hash] def table_printable_values printable = {} printable[:description] = format_for_display(@description, 36) printable[:gross_weight] = @gross_weight.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@gross_weight) printable[:measurement] = @measurement.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@measurement) printable[:measurement_unit] = format_for_display(@measurement_unit, nil) printable[:quantity] = @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity) printable[:weight_unit] = format_for_display(@weight_unit, nil) printable end # @return [String] def to_table_line printable = table_printable_values out_str = String.new out_str << format('| %- 37s', printable[:description]) out_str << format('| %- 13s', printable[:gross_weight]) out_str << format('| %- 12s', printable[:measurement]) out_str << format('| %- 17s', printable[:measurement_unit]) out_str << format('| %- 9s', printable[:quantity]) out_str << format('| %- 12s', printable[:weight_unit]) out_str << '|' end # @return [String] def to_s printable = printable_values out_str = String.new out_str << "\n :Description: #{printable[:description]}" out_str << "\n :Gross Weight: #{printable[:gross_weight]}" out_str << "\n :Measurement: #{printable[:measurement]}" out_str << "\n :Measurement Unit: #{printable[:measurement_unit]}" out_str << "\n :Quantity: #{printable[:quantity]}" out_str << "\n :Weight Unit: #{printable[:weight_unit]}" out_str end end end end end