- Product Manager
- Web Engineer
- Customer Support
- Other occupations (59)
- Development
-
Business
- Product Manager
- プロダクトマネージャー
- サステナビリティ
- 広報
- カルチャー推進・浸透
- 知財戦略立案・推進・発明発掘
- リスクマネジメント統括本部
- AML/CFTコンプライアンス
- AML・金融犯罪対策Ops
- 金融コンプライアンス
- ビジネス採用担当
- 経営企画(予実・IR)
- HRBP
- Legal
- 債権管理/MFK
- ToB Sales
- インサイドセールス
- フィールドセールス
- インサイドセールス SDR
- インサイドセールス企画
- オンラインセールス
- SaaS営業、MFBC
- インサイドセールス MFBC
- セールス MFBC
- マーケティングリサーチャー
- マーケター
- データマーケター
- BtoBマーケティングリーダー
- CRMスペシャリスト
- イベントマーケター
- Other
マネーフォワードのプログラマ、奥野(@bugslife)です。
最近、話題の映画ベイマックスを見ました。
賛否あるものの素晴らしい映画です、開発チームに居て欲しいですね。ベイマックス。メンターでしょうか?
「泣きたい時は、泣いてもいいんですよ」
今回は、エンジニアブログの箸休めとしてトリビアネタです。
必ず必要になるけど、あんまり重要視されず秘伝のソースになる事が多い、そう 『祝日処理』 です。
私の経験だと
GoogleCalenderから引っ張ったり偉い人が 年次でDBにエイヤッと入れてストアドでつついたりもっと凄い何か
等など。ちょっとやりたい事に対して手間が掛かり過ぎですよね?
勿論MFにはちゃんとした運用がありますが、hubotなどでライトに使いたい時など、、、
そんな状況を簡単に救えたら・・・
そうだ、gemを使おう!
holiday_jp @ komagataさん作が良さそうです。
人気漫画の言葉を借りるなら
「ほーいいじゃないか こういうのでいいんだよ こういうので」
1970〜2050年の祝日が含まれているようです。
ただ、未来の祝日は変わっていくので、定期的にgemを更新すればいいかと思います。
rubyで使う場合
HolidayJp.holiday?(Date.today)
なんの問題もありません。
独自の祝日を持つケース、一日が24時で切り替わらない、なども拡張すれば出来そうですね。
cronで起動する場合
cronの記述には曜日設定はあれど祝日は記述できません。
こんな感じでコントロールしては如何でしょうか?
環境変数読み込みに設定
ruby -rholiday_jp -e 'exit HolidayJp.holiday?(Date.today).nil?'
export IS_HOLIDAY=$?
各起動スクリプトの先頭で・・・
if test $IS_HOLIDAY -eq 1 ; then
exit 0
fi
デーモン等(ruby以外)の場合
gemはrubyの世界を出れません。また、cronの定時起動作戦は起動時のみしか使えません。
そんな時には、Webサーバーを立てましょう!
I love Sinatra.
Webサーバー側
ruby -rholiday_jp -rsinatra -e 'get "/" do; "{\"is_holiday\": #{HolidayJp.holiday?(Date.today).nil?}}" ;end'
クライアント側
JSON.parse(open('http://localhost:4567/').read)
最後に
如何でしょうか?もっと良い方法等あるかと思います。
そんな熱い思いを誰かにぶつけたい貴方は・・・
マネーフォワードでは、Railsエンジニアを大募集しています!
みなさまのご応募お待ちしております!