Workatoのformulaを使い倒してみる1 - gsub
前段
Workatoでは色々なアクションが用意されていて便利です
が、ちょっとしたことをやりたいだけなのにアクションが用意されていないとシュッとできなくて「ぐぬぬ」ってなることがあったりします
Formulaはrubyの関数がいくつか使えるものですが、実際に試したものを連載形式で書いていこうと思います。
第一回目は gsub です。
他の言語だと replace と同義ですね。
Formulaを使う方法
Formulaの使い方ですが、inputのタイプをFormulaに切り替えると使えます

切り替え後

背景が黒い状態がFormulaモードです
ここで関数が使えるようになります。
いざ実践
サンプルレシピの紹介
variablesに入れた値をlogに出力してみます
変数には以下を用意しています
- sample string 1
- hoge
- sample string 2
- apple

1.そのまま出してみる
Textモードで出力してみる
sample string1に設定されている hoge を出力してみます

test recipeで実行した結果です。でました。

2.Formulaを使ってそのまま出してみる
Formulaモードに切り替えてみました。関数などは使っていない状態です

実は関数を使わなくても普通に出力できます

gsubを使って置換してみる
gsubの使い方
Formulaモードに切り替えた状態でvariablesのsample text1を配置し、続けて .g と入力すると関数がサジェストされてきます

ここでgsubを選択すると入力欄に補完されて、更に使い方の説明が出てきます

{元の文字列}.gsub("{置換対象の文字列}", "{置換で置き換えたい文字列}") という形になっています
試してみる
今回はsample string1に設定している hoge の ho を ma に置換して mage と出力してみます
.gsub("ho", "ma") と設定しています

実行結果はこちらです。でましたね。

次にsample string2 に設定している apple の p を d に置換してみます
.gsub("p", "d") と設定しています

でました。 p が全て d に置換されて addle となっています。

tips
似た関数で sub というものもあります

sub を使って .sub("p", "d") をすると先ほど確認した .gsub("p", "d") とどのように異なるのか見てみましょう

結果はこのようになり、「最初に出現した p だけが d に置換される」です。
gsub は文字列に含まれる「全ての対象」が置換されますが、 sub は文字列に含まれる「最初の対象」だけが置換されます

今回は以上です。
gsub を使えるとちょっとした置換はシュッとできて便利なのでお使いください。
Discussion