lib/mindee/product/business_card/business_card_v1_document.rb
# frozen_string_literal: true require_relative '../../parsing' module Mindee module Product module BusinessCard # Business Card API version 1.0 document data. class BusinessCardV1Document < Mindee::Parsing::Common::Prediction include Mindee::Parsing::Standard # The address of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :address # The company the person works for. # @return [Mindee::Parsing::Standard::StringField] attr_reader :company # The email address of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :email # The Fax number of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :fax_number # The given name of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :firstname # The job title of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :job_title # The lastname of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :lastname # The mobile number of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :mobile_number # The phone number of the person. # @return [Mindee::Parsing::Standard::StringField] attr_reader :phone_number # The social media profiles of the person or company. # @return [Array<Mindee::Parsing::Standard::StringField>] attr_reader :social_media # The website of the person or company. # @return [Mindee::Parsing::Standard::StringField] attr_reader :website # @param prediction [Hash] # @param page_id [Integer, nil] def initialize(prediction, page_id) super @address = Parsing::Standard::StringField.new( prediction['address'], page_id ) @company = Parsing::Standard::StringField.new( prediction['company'], page_id ) @email = Parsing::Standard::StringField.new(prediction['email'], page_id) @fax_number = Parsing::Standard::StringField.new( prediction['fax_number'], page_id ) @firstname = Parsing::Standard::StringField.new( prediction['firstname'], page_id ) @job_title = Parsing::Standard::StringField.new( prediction['job_title'], page_id ) @lastname = Parsing::Standard::StringField.new( prediction['lastname'], page_id ) @mobile_number = Parsing::Standard::StringField.new( prediction['mobile_number'], page_id ) @phone_number = Parsing::Standard::StringField.new( prediction['phone_number'], page_id ) @social_media = [] # : Array[Parsing::Standard::StringField] prediction['social_media'].each do |item| @social_media.push(Parsing::Standard::StringField.new(item, page_id)) end @website = Parsing::Standard::StringField.new( prediction['website'], page_id ) end # @return [String] def to_s social_media = @social_media.join("\n #{' ' * 14}") out_str = String.new out_str << "\n:Firstname: #{@firstname}".rstrip out_str << "\n:Lastname: #{@lastname}".rstrip out_str << "\n:Job Title: #{@job_title}".rstrip out_str << "\n:Company: #{@company}".rstrip out_str << "\n:Email: #{@email}".rstrip out_str << "\n:Phone Number: #{@phone_number}".rstrip out_str << "\n:Mobile Number: #{@mobile_number}".rstrip out_str << "\n:Fax Number: #{@fax_number}".rstrip out_str << "\n:Address: #{@address}".rstrip out_str << "\n:Website: #{@website}".rstrip out_str << "\n:Social Media: #{social_media}".rstrip out_str[1..].to_s end end end end end