rastam’s blog

東京在住のマレーシア人 Rubyist

Ruby Weekly #399: 日本語サマリー

職場の Slack 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。

http://rubyweekly.com/issues/399rubyweekly.com

Highlights

Ruby's New Exception Keyword Arguments

Ruby 2.6 の exception キーワード引数で例外を投げるかどうか指定できるようになる。

Rewriting Deprecated APIs with the 'parser' Gem

deprecated ソースコードparser gem で AST に変換して書き換える話。

Deprecating Paperclip: What This Means to You

ActiveStorage がリリースされたため、Paperclip gem が deprecated になった。

Gotham Ruby Conf 2018: A One Day Ruby Event in NYC on June 16

ニューヨークの GORUCO がいよいよ。

How Phusion Redesigned Passenger's App Error Page

Passenger の development モードのエラー画面のデザインを改善した話。

Tutorials

How to Mitigate DDoS using Rack::Attack

Rack::Attack ミドルウェアで DDoS 防止。

Build an Effective Initial Deployment Pipeline

筆者自慢の初期 CI/CD パイプライン。

push するたびに

  1. test 環境コンテナにデプロイされる
  2. staging 環境で migration が実行される
  3. テストが実行される

テストが通ったコミットを master ブランチに push するたびに

  1. staging 環境コンテナにデプロイされる
  2. production 環境 DB がバックアップされ、staging 環境でダンプされる
  3. staging 環境で migration が実行される

テストが通ったタグを push するたびに

  1. production 環境コンテナにデプロイされる
  2. production 環境 DB がバックアップされる
  3. production 環境で migration が実行される

Securing User Emails in Rails

attr_encrypted gem で DB 内メアドを暗号化し、blind_index gem で検索可能に。

Adding GDPR Compliance to a Rails App

Rails アプリ、ブログの GDPR 対策。

How to Create Charts in a Rails App with Just One Line of Code

chartable gem で .analytics 取得用メソッドを ActiveRecord モデルに生やし、chartkick gem で可視化。

Code & Tools

Discard: Soft Deletes for ActiveRecord Done Right

paranoia gem のメンテナーが新しく作った ActiveRecord 論理削除用 gem。

acts_as_paranoidparanoia gem よりは魔術が少ない:

  • default_scope を生やさない
  • #delete #destroy を上書きせず、新しいインタフェースを生やす
  • dependent: :destroy で関連レコードを削除しない

Ralyxa: A Ruby Framework for Interacting with Amazon Alexa

Amazon Alexa ウェブサービスフレームワーク

aws_public_ips: Fetch All Public IP Addresses Tied to Your AWS Account

AWS アカウントの公開 IP を全て表示してくれる CLI gem。