較大型的客戶,會有專門過版到正式機的組織編制,編制成員的功底可能無法太要求,只能寫成Script方便他們一鍵執行。
這次過版任務是Ruby on Rails,透過Rails Runner去執行,Rails Runner是Rails Console外部呼叫Script版,Rails Console相當於RoR的CLI。
廠商提供一個audit目錄,下有一堆要過版的rb檔,所以用bash寫過版程式如下:
#!/bin/bash
for i in $(ls audit/*.rb); do
f="$(basename -- $i)"
bin/rails r ${i} > "audit/${f}.log";
done;
上面是讀audit子目錄下所有的rb檔,先取得檔名暫存(basename)作為輸出檔名用,再執行rails r script_name,r這個參數就是runner,然後輸出到audit子目錄下並對檔名再加後綴.log
而rb檔的sample如下:
puts ApplicationMailer.default
ApplicationMailer是Ruby的Class名稱,default是其屬性值,在rails console裡直接打ApplicationMailer.default就會輸出JSON值,而加個puts目的是將輸出導向stdout之用。