簡単な占いをしてくれるスクリプトを書いた。
Date:2013-12-24 15:31:09 +0900
Categories: TECHNOLOGY
Categories: TECHNOLOGY
Rubyレシピブックで配列からランダムに抽出する 配列オブジェクト.sample というものがあったので、
簡単な占いっぽい今日の運勢をメールで送ってくれるスクリプトを書いた。
環境
CentOS 6.5
Ruby 2.0.0
※余談ですが、iPad miniのkindleで読んでいたので
そのままiPad miniからPromptというアプリでCentOSに入ってviでファイル作成しました。
30分位?
パーツ
mailとdateを読んでます。
・require
require 'date' require 'mail'
・定義部分(準備部分)
今日の日付と占いに使う3つの要素を配列として準備しています。
fortune部分の変数は朝から憂鬱になりたくないので、嬉しい目の結果が出るようにしています。
today = Date.today sending_address = "送るメールアドレス" fortune = "So Lucky!, So Lucky!, Lucky!, Lucky!, Lucky!, Normal, Not Normal!, So Hard!".split(", ") color = "red, blue, black, white, green, yellow, pink, purple, orange, grey".split(", ") item = "iPhone, book, iPad, macbook, pen, hhkb, coffee, fuchiko-san".split(", ")
・メール本文になるもの
ヒアドキュメントを”“で囲って変数展開出来る形で記載しています。
ポイントは.sampleで適当に抽出してランダム感を出してます。
mail_body = ・メール送信部分 requireで読んだmailでfrom to subject bodyを設定しておけば よしなにdeliverで送ってくれます。 mail = Mail.new mail.from = sending_address # fromを別アドレスにしたい際は変更してください。 mail.to = sending_address mail.subject = "#{today.strftime("%Y/%m/%d")}'s fortune" mail.body = mail_body mail.deliver これらをくっつけて最後にexit 0でほぼ動くと思います。 あとは、crontabに朝7時にスクリプトをセットすればOKです。 毎朝7時にメールが届くので、ちょっとした目覚まし代わりでもあります(そのあと2度寝) 追記 その後に日本語表示ができるようにスクリプトを改変したところ「Non US-ASCII detected and no charset defined. Defaulting to UTF-8, set your own if this is incorrect.」というエラーがでました。 調べたところ、mailのcharset周りをutf-8に合わせてあげればいいみたいでした。 mail.charset = ‘utf-8′ こんな感じのをメール送信部分に混ぜてあげれば良いかもです。Tweet