週刊Railsウォッチ(20181225)Rails 6新機能第2弾「Action Mailbox」、url_forは慣れが要る、Ruby製サーバーレスフレームワークJetsほか

こんにちは、hachi8833です。12月早々からクリスマス気分が年末気分に追い越されてしまった心持ちです。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください 2018年最後のウォッチ、いってみましょう。 ⚓新年: 週刊Railsウォッチ「公開つっつき会#6」開催のお知らせ 応募先: 週刊Railsウォッチ 公開つっつき会 第6回|IT勉強会ならTECH PLAY[テックプレイ] 次回の新春公開つっつき会は1/10(木)に開催いたします。皆さまのお気軽なご応募をお待ちしております🙇。 ⚓臨時ニュース: Ruby 2.6リリース㊗️🎉🎉 Link: Ruby 2.6.0 Released: https://t.co/0YhlskXrZg — Yukihiro Matsumoto (@yukihiro_matz) December 25, 2018 早速Ruby 2.7に関連したコミットをいれた — k0kubun (@k0kubun) December 25, 2018 ⚓Rails: 先週の改修(Rails公式ニュースより) ⚓新機能: Action Mailbox 元記事: Introducing Action Mailbox for Rails 6 | Riding Rails Action Textに続くRails 6の目玉機能になるそうです。やはりBasecamp内でドッグフーディングしていたのが切り出されたとのこと。 今回Railsコアチームに加わったGeorge Claghorn氏が、Active Storageとともにこれまで手がけてきたそうです。 元記事: George joins Rails Core! | Riding Rails リポジトリ: rails/actionmailbox つっつきボイス:「先週のつっつきの後で発表されてました」「ほっほ〜?」「ちょうどWebチームの方がアドベントで書いてくださったAction MailとSendGridでの送信記事↓のあたりをカバーしている感じかな、と思ったらMailboxなので受け取る方だった💦」「なるほど、受信メールをモデルに保存して、そういうあたりを共通化する感じ!😃1通受け取るだけならともかく、結構な数のメールを受け取るなら運用していると欲しいときありそう」「やりたいことはワカル: これより小規模なものは前からあった気もするけど、コントローラっぽく処理できるようになったのが新しいのかも」 Rails: SendGrid(Web API)とAction Mailerでメールを送信する 「あー、受信メールをAWS SESにも保存できるというのは確かにメリット: SESってメールをS3に保存するというオプションがあって、たぶんこのAction Mailboxを使うとSESに置いたメールを探したり取ってきたりできそう」「おー」「メールの自動応答的な機能に便利かも?: たとえばRedmineだと、コメントにメールで返信するとチケットのコメントに取り込んでくれる機能がありますね」「なるほど!」 サイト: Redmine.JP — Redmine日本語情報サイト redmine.jpより 「ところで、メールを受け取ってそれで何かをするみたいな仕組みって、現代ではかなり減ってきていますけどね☺️」「あーこの間のウォッチで話題に出たAS/400の話みたいな😆」「メールを使いたいひとたちはまだまだたくさんいらっしゃるので☺️」 InboundEmailというシンプルなモデルが足されるそうです。 # 同記事より class ActionMailbox::InboundEmail < ActiveRecord::Base self.table_name = “action_mailbox_inbound_emails” include Incineratable, MessageId, Routable has_one_attached :raw_email enum status: %i[ pending processing delivered failed bounced ] def mail @mail ||= Mail.from_source(source) end def source @source ||= raw_email.download end def processed? delivered? || failed? || bounced? end end 「昼にもちょっと話しましたが、Action Mailerって結構完成度高いというか枯れていて、ある意味ライブラリはこうあるべきみたいな感じなんですが、地味すぎてあんまり光が当たってない気がしますよね」「メール送信の処理自体がだいたい確立していますし☺️」「大変なのは運用の方😅」 参考: Action Mailer の基礎 | Rails ガイド 「今回、on-by-default incinerationという名目で、Incineratableというモジュール↓が追加されてますね」「いんしねれーしょん?」「いかにも堅苦しそうな語だなと思ったら、焼却って意味だそうです: 処理済みのメールを焼却炉に入れるみたいな感じかなー?」「incinerationをジョブ化して後でまとめて処理もできるっぽい」 module ActionMailbox::InboundEmail::Incineratable extend ActiveSupport::Concern included do after_update_commit :incinerate_later, if: -> { status_previously_changed? && processed? } end def incinerate_later ActionMailbox::IncinerationJob.schedule self end def incinerate Incineration.new(self).run end end ⚓Rails 6のRC版はRailsConf 2019で発表の見込み ついでに、Rails 6のRC版を来年4月にミネアポリスで開催されるRailsConf 2019で発表する目標になったそうです。 サイト: RailsConf 2019 … Continue reading 週刊Railsウォッチ(20181225)Rails 6新機能第2弾「Action Mailbox」、url_forは慣れが要る、Ruby製サーバーレスフレームワークJetsほか