# Module: constantArrayParsing

Contains all system defined business rules for parsing arrays specific to constants.

Author:
  - Seth Hollingsead
Copyright:
  - Copyright © 2022-… by Seth Hollingsead. All rights reserved
Source:
  - businessRules/rules/arrayParsing/constantArrayParsing.js, line 1

### Requires

- module:ruleParsing
- module:configurator
- module:loggers
- @haystacks/constants
- math
- chalk
- path

### Methods

#### (inner) getLengthOfLongestStringInArray(inputData, inputMetaData) → {integer}

Determines what the longest string is in an array of strings.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | array.<string> | The array for which we should find the longest length string in.
`inputMetaData` | string | Not used for this business rule.

Author:
  - Seth Hollingsead
Source:
  - businessRules/rules/arrayParsing/constantArrayParsing.js, line 32

##### Returns:

The length of the longest string in the array.

Type
  integer

#### (inner) searchForPatternsInStringArray(inputData, inputMetaData) → {array.<string>}

Walks through sub-strings of each string in the input array of strings searching or common patterns using a brute-force sequential array search. Maximum string length to search is the maximum string length - 1 (basically the longest string in the array minus 1 character). Minimum string length to search is 3 characters.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | array.<string> | The array of strings that should be searched for matching patterns.
`inputMetaData` | string | Not used for this business rule.

Author:
  - Seth Hollingsead
Source:
  - businessRules/rules/arrayParsing/constantArrayParsing.js, line 56

##### Returns:

A string array of common string values found in more than 1 element of the array and 3 or more characters long.

Type
  array.<string>

#### (inner) validatePatternsThatNeedImplementation(inputData, inputMetaData) → {string}

Scans through an array of strings and determines which ones are not yet implemented in the constants system.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | array.<string> | The array of strings that should be checked if they are already implemented in the constants system or not.
`inputMetaData` | string | Not used for this business rule.

Author:
  - Seth Hollingsead
Source:
  - businessRules/rules/arrayParsing/constantArrayParsing.js, line 147

##### Returns:

A coma separated list of constants that are not yet implemented.

Type
  string