Skip to main content
Version: 3.3.0

Functions

Runnerty provides a bunch of different functions that can be used in the whole plan of our chains. They are very useful to operate, transform or generate values or mix it with dependencies, etc...

All functions

Values

FunctionSyntaxDescription
GV@GV(VALUE_ID [,QUOTE_STRING])Used to get values. Optionally you can set quotestring. Learn more about _values here.
GETVALUE (GV ALIAS)@GETVALUE(VALUE_ID [,QUOTE_STRING])Used to get values. Optionally you can set quotestring. Learn more about _values here.
GVQ@GVQ(VALUE_ID [,QUOTE_STRING])Used to get values and quote them. If QUOTESTRING is not set, it will be set by default with single quote. Learn more about _values here.
GETVALUEQUOTE (GVQ ALIAS)@GETVALUEQUOTE(VALUE_ID [,QUOTE_STRING])Used to get values and quote them. If QUOTESTRING is not set, it will be set by default with single quote. Learn more about _values here.
GETVALUEESCAPE (GVESCAPE ALIAS)@GETVALUEESCAPE(VALUE_ID)Used to get values escaped (Replacing no SingleStringCharacters or DoubleStringCharacters ECMA). Learn more about values here.
GETVALUEUNESCAPE (GVUNCESCAPE ALIAS)@GETVALUEUNESCAPE(VALUE_ID)Used to get values unescaped (Restoring no SingleStringCharacters or DoubleStringCharacters ECMA). Learn more about values here.
ENV@ENV(ENV_VALUE [,QUOTE_STRING])Used to get environment variables. Optionally you can set quotestring. Learn more about _values here.
GENV (ENV ALIAS)@GENV(ENV_VALUE [,QUOTE_STRING])Used to get environment variables. Optionally you can set quotestring. Learn more about _values here.

Math

FunctionSyntaxDescription
ABS@ABS(NUMBER)Returns the absolute value of a number
ACOS@ACOS(NUMBER)Returns the arccosine (in radians) of a number
ASIN@ASIN(NUMBER)Returns the arcsine (in radians) of a number
ATAN@ATAN(NUMBER)Returns the arctangent (in radians) of a number
CEIL@CEIL(NUMBER)Returns the smallest integer greater than or equal to a given number
COS@COS(NUMBER)Returns the cosine of the specified angle, which must be specified in radians
FLOOR@FLOOR(NUMBER)Returns the largest integer less than or equal to a given number
LOG@LOG(NUMBER)Returns the natural logarithm (base e) of a number
MAX@MAX(NUMBER, NUMBER [, ...])Returns the largest of numbers
MIN@MIN(NUMBER, NUMBER [, ...])Returns the lowest of numbers
POW@POW(NUMBER_BASE, NUMBER_EXPONENT)Returns the base to the exponent power, that is, base^exponent
RANDOM@RANDOM(DECIMALS, NUMBER_MIN, NUMBER_MAX)Returns random number
SIN@SIN(NUMBER)Returns the sine of a number
TAN@TAN(NUMBER)Returns the tangent of a number
EXP@EXP(NUMBER)Returns e^x, where x is the argument, and e is Euler's number
SQRT@SQRT(NUMBER)Returns the square root of a number
ROUND@ROUND(NUMBER)Returns the value of a number rounded to the nearest integer.
ADD@ADD(NUMBER, NUMBER [, ...])Returns the sum of the numbers
SUBTRACT@SUBTRACT(NUMBER, NUMBER [, ...])Returns the subtraction of the numbers
DIVIDE@DIVIDE(NUMBER, NUMBER)Returns the division of the numbers
MULTIPLY@MULTIPLY(NUMBER, NUMBER)Returns the multiplication of the numbers
MODULUS@MODULUS(NUMBER, NUMBER)Returns the modulus of the numbers

Strings

FunctionSyntaxDescription
LPAD@LPAD(STRING)Returns a string that is left-padded with a specified string to a certain length
RPAD@RPAD(STRING)Returns a string that is right-padded with a specified string to a certain length
CONCAT@CONCAT(STRING, STRING [, ...])Returns concatenates two or more expressions together
CONCATWS@CONCATWS(STRING_SEPARATOR, STRING, STRING [, ...])Returns concatenates two or more expressions together and adds a separator between them
UPPER@UPPER(STRING)Returns the string to upper-case
LOWER@LOWER(STRING)Returns the string to lower-case
TRIM@TRIM(STRING)Removes whitespace, all the whitespace characters (space,tab,no-break space,etc.) and the line terminator characters (LF,CR,etc.)
LTRIM@LTRIM(STRING)Returns left trim string
RTRIM@RTRIM(STRING)Returns right trim string
LENGTH@LENGTH(STRING)Returns the length of the specified string (in bytes)
CHARCODE@CHARCODE(CHAR)Returns the number code that represents the specific character
SUBSTR@SUBSTR(STRING_TO_EXTRACT, NUMBER_START, NUMBER_CHARACTERS)Returns a substring from a string (starting at any position)
REPLACE@REPLACE(STRING, STRING_TO_FIND, STRING_REPLACEMENT, STRING_FLAGS)Replaces all occurrences of a specified string
INCLUDES@INCLUDES(STRING, STRING_TO_FIND)Returns boolean depending on whether it finds or not a string in another string
INDEXOF@INDEXOF(STRING, STRING_TO_FIND)Returns the position of the first occurrence of a string in another string else -1
ESCAPE@ESCAPE(STRING)Returns escaped string (Replacing no SingleStringCharacters or DoubleStringCharacters ECMA)
UNESCAPE@UNESCAPE(STRING)Returns unescaped string (Restoring no SingleStringCharacters or DoubleStringCharacters ECMA)
QUOTE@QUOTE(STRING,QUOTE_STRING)Return quoted string. If QUOTE_STRING is not set, it will be set by default with single quote
JSONSTRINGIFY (STRINGIFY ALIAS)@STRINGIFY(OBJECT)Returns the JSON stringified object
HTMLESCAPE@HTMLESCAPE(STRING_UNESCAPED)Returns escaped string for insertion into HTML, replacing "&", "<", ">", '"', and "'" by &, <, >, ", and '
HTMLUNESCAPE@HTMLUNESCAPE(STRING_ESCAPED)Returns unescaped string for insertion into HTML, replacing &, <, >, ", and ' by "'", "<", ">", '"', and "'"

Examples:

@LENGTH('RUNNERTY') -> 8
@LOWER(hELLo) -> hello
@CONCAT('TEXT SAMPLE:',' --> ',@RPAD(@LPAD(@TRIM(@UPPER(' test ')),8,'X'),10,'Z')) -> TEXT SAMPLE: --> XXXXTESTZZ

Crypto

FunctionSyntaxDescription
HASH@HASH(STRING_TO_HASH, STRING_HASH, STRING_DIGEST)Returns hashed string. HASH: openssl list-message-digest-algorithms. DIGEST: hex, base64 or latin1
ENCRYPT@ENCRYPT(STRING_TO_ENCRYPT, STRING_ALGORITHM, STRING_PASSWORD)Returns encrypt string. HASH: openssl list-cipher-algorithms.
DECRYPT@DECRYPT(STRING_TO_DECRYPT, STRING_ALGORITHM, STRING_PASSWORD)Returns decrypt string. HASH: openssl list-cipher-algorithms.
UUID (UUIDV4)@UUID()Return a UUID v4
UUIDV1@UUIDV1()Return a UUID v1
UUIDV3@UUIDV3(STRING_NAME, STRING_NAMESPACE_UUID)Return a UUID v3
UUIDV5@UUIDV5(STRING_NAME, STRING_NAMESPACE_UUID)Return a UUID v5
UUIDVALIDATE@UUIDVALIDATE(STRING_UUID)Return a validation boolean
UUIDVERSION@UUIDVERSION(STRING_UUID)Return a version namber of UUID

Examples:

@HASH('RUNNERTY','md5','base64') -> wBM7mLwJnIpMlpRBHiLxBw==
@HASH('RUNNERTY','sha256','hex') -> 5e557b12c62c361fac4f480ba30d7afe1bc9b8a1dd1cd26807fb3f1c7ef0b18d
@ENCRYPT('RUNNERTY', 'AES256', 'PASSWORD') -> fd9f555099fbb6f25eff05d6c98693af
@DECRYPT('fd9f555099fbb6f25eff05d6c98693af', 'AES256', 'PASSWORD') -> RUNNERTY
@UUIDVERSION(@UUIDV5('Runnerty!', 'f97b4c8e-2ce1-11eb-adc1-0242ac120002')) -> 5

Evaluation

FunctionSyntaxDescription
IF@IF(BOOLEAN, OUTPUT_ON_TRUE, OUTPUT_ON_FALSE)Returns a string that is left-padded with a specified string to a certain length
IFNULL@IFNULL(OPER, OUTPUT_IF_NULL, OUTPUT_IF_NOT_NULL)Returns an alternative value if an expression is null and optionally other if not
EQ@EQ(OPER_ONE, OPER_TWO)Returns boolean depending on whether it OPER_LEFT == OPER_RIGHT
NE@NE(OPER_ONE, OPER_TWO)Returns boolean depending on whether it OPER_LEFT != OPER_RIGHT
GT@GT(OPER_LEFT, OPER_RIGHT)Returns boolean depending on whether it OPER_LEFT > OPER_RIGHT
GTE@GTE(OPER_LEFT, OPER_RIGHT)Returns boolean depending on whether it OPER_LEFT >= OPER_RIGHT
LT@LT(OPER_LEFT, OPER_RIGHT)Returns boolean depending on whether it OPER_LEFT < OPER_RIGHT
LTE@LTE(OPER_LEFT, OPER_RIGHT)Returns boolean depending on whether it OPER_LEFT <= OPER_RIGHT

Dates

FunctionSyntaxDescription
GETDATE@GETDATE(STRING_FORMAT, STRING_LANGUAGE, STRING_PERIOD, NUMBER_INCREMENT, BOOLEAN_UPPER)Returns string as specified by a format mask, language and period with current day
LASTDAY@LASTDAY(STRING_DATE, STRING_INPUT_FORMAT, STRING_OUTPUT_FORMAT, STRING_LANGUAGE, BOOLEAN_UPPER)Returns string as specified by a format mask and language with the last day of the input date
DATEFORMAT@DATEFORMAT(STRING_DATE, STRING_INPUT_FORMAT, STRING_OUTPUT_FORMAT, STRING_LANGUAGE, STRING_PERIOD, NUMBER_INCREMENT, BOOLEAN_UPPER)Returns string as specified by a format mask and language and period of the input date
Format: https://momentjs.com/docs/#/parsing/string-format/
Language: Use country Abbreviations ('en','es','cn','fr',...) - http://momentjs.com/docs/#/i18n/
Period: It is posible use a key or shorthand key of a perior: years or y, quarters or Q, months or M, weeks or w, days or d, hours or h, minutes or m, seconds or s, milliseconds or ms
Increment: Number (+/-) to increment a period
Uppercase: Boolean to set if output must be returned upper

Examples:

@GETDATE('MMMM','es','months',2,true) - Add 2 months to current date and output month name upper: 'ENERO'
@GETDATE('YYYY-MM-DD HH:mm:ss') - Return current date formated like the mask 'YYYY-MM-DD HH:mm:ss': '2018-01-01 23:59:59'
@LASTDAY('01-01-2020','DD-MM-YYYY','MMMM','es',true)
@LASTDAY('20200220','YYYYMMDD','DD/MM/YYYY')
@LASTDAY(@GETDATE())
@DATEFORMAT('20201231','YYYYMMDD','MMMM','en','month','-1',true)

Paths/Urls

FunctionSyntaxDescription
PATHPARSE@PATHPARSE(STRING_PATH, STRING_PROPERTIE)Returns a string with specified propertie of path. PROPERTIES: root, dir, base, ext or name
PATHNORMALIZE@PATHNORMALIZE(STRING_PATH)If multiple, sequential path segment separation characters are found (e.g. / on POSIX and either \ or / on Windows), they are replaced by a single instance of the platform specific path segment separator. Trailing separators are preserved
PATHJOIN@PATHJOIN(STRING_PATH, STRING_PATH [, ...]))Return joined all given path segments together using the platform specific separator as a delimiter, then normalizes the resulting path.
URLPARSE@URLPARSE(STRING_URL, STRING_PROPERTIE)Returns a string with specified propertie of url. PROPERTIES: protocol, slashes, auth, host, port, hostname, hash, search, query, pathname, path, href

Examples:

@PATHPARSE('/etc/runnerty/plan.json', 'NAME') -> plan
@PATHPARSE('/etc/runnerty/plan.json', 'base') -> plan.json
@PATHNORMALIZE('/foo/bar//baz/asdf/quux/..') -> /foo/bar/baz/asdf
@PATHJOIN('/etc','runnerty/',plan.json) -> /etc/runnerty/plan.json
@URLPARSE('http://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash','hostname') -> sub.host.com
@URLPARSE('http://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash','port') -> 8080