Neste tutorial, a ideia é criar uma fórmula que irá agrupar uma outra fórmula dentro dela.
Para mais informações sobre agrupamento de fórmulas, veja a seção de encapsular fórmulas.
Vamos agrupar pelo menos duas fórmulas:
rit math sum numbers
(Nível 1).rit math multiply numbers
(TODO).rit math calculate
Essa fórmula deverá conter (pelo menos) três parâmetros de entrada. Veja como abaixo:
RIT_NUMBER_ONE
).RIT_NUMBER_TWO
).RIT_OPERATION
).Procure pelo arquivo config.json
da sua fórmula e substitua o campo inputs
pelo bloco abaixo:
{
"label": "Number one : ",
"name": "rit_number_one",
"type": "text"
},
{
"label": "Number two : ",
"name": "rit_number_two",
"type": "text"
},
{
"label": "Operation : ",
"name": "rit_operation",
"type": "text",
"items": [
"sum",
"multiplication"
]
}
]
Siga os passos abaixo para criar a sua fórmula:
Procure pelo arquivo main
da sua fórmula e extraia os parâmetros de entrada antes de usá-los para chamar o método da fórmula. Veja abaixo alguns exemplos de códigos:
import os
from formula import formula
number_one = int(os.environ.get("RIT_NUMBER_ONE"))
number_two = int(os.environ.get("RIT_NUMBER_TWO"))
operation = os.environ.get("RIT_OPERATION")
formula.run(number_one, number_two, operation)
package main
import (
"formula/pkg/formula"
"os"
)
func main() {
numberOne := os.Getenv("RIT_NUMBER_ONE")
numberTwo := os.Getenv("RIT_NUMBER_TWO")
operation := os.Getenv("RIT_OPERATION")
formula.Formula{
NumberOne: numberOne,
NumberTwo: numberTwo,
Operation: operation,
}.Run()
}
#!/bin/bash
# shellcheck source=/dev/null
. "$(dirname "$0")"/formula/formula.sh --source-only
runFormula
main.*
para a maioria das linguagens, exceto para o Node que chama index.js
.Execute a fórmula rit de acordo com a operação selecionada:
rit math multiply numbers
;rit math sum numbers
.Procure pelo arquivo formula
da sua fórmula e implemente o método realizando a operação da sua automação. Veja alguns exemplos de códigos:
import os
import json
def run(number_one, number_two, operation):
if operation == "sum":
input_flag_cmd = f"rit python math sum numbers --rit_number_one={number_one} --rit_number_two={number_two}"
elif operation == "multiplication":
input_flag_cmd = f"rit python math multiply numbers --rit_number_one={number_one} --rit_number_two={number_two}"
else:
print("Unexpected operation")
os.system(f'{input_flag_cmd}')
package formula
import (
"fmt"
"log"
"os/exec"
)
type Formula struct {
NumberOne string
NumberTwo string
Operation string
}
func (h Formula) Run() {
cmdLine := exec.Command("", "")
switch h.Operation {
case "sum":
cmdLine = exec.Command(
"rit",
"math",
"sum",
"numbers",
fmt.Sprintf("--rit_number_one=%s", h.NumberOne),
fmt.Sprintf("--rit_number_two=%s", h.NumberTwo),
)
case "multiplication":
cmdLine = exec.Command(
"rit",
"math",
"multiply",
"numbers",
fmt.Sprintf("--rit_number_one=%s", h.NumberOne),
fmt.Sprintf("--rit_number_two=%s", h.NumberTwo),
)
default:
fmt.Print("Unexpected operation type:", h.Operation)
}
out, err := cmdLine.CombinedOutput()
if err != nil {
log.Fatalf("cmd.Run() failed with %s\n", err)
}
fmt.Printf(string(out))
}
#!/bin/sh
runFormula() {
if [ "sum" = "$RIT_OPERATION" ]; then
rit math sum numbers --rit_number_one=$RIT_NUMBER_ONE --rit_number_two=$RIT_NUMBER_TWO
elif [ "multiplication" = "$RIT_OPERATION" ]; then
rit math multiply numbers --rit_number_one=$RIT_NUMBER_ONE --rit_number_two=$RIT_NUMBER_TWO
else
echo "Unexpected operation type: $RIT_OPERATION"
fi
}
pom.xml
para Java, requirements.txt
para Python, package.json
para Node, go.mod
para Golang, etc).~ rit math calculate
? Number one : 1
? Number two : 2
? Operation: multiplication
The multiplication is 2
~ ~ rit math calculate
? Number one : 1
? Number two : 2
? Operation: sum
The sum is 3
Se você quiser testar mais sua fórmula, veja algumas sugestões abaixo:
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.