rastam’s blog

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

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

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

http://rubyweekly.com/issues/395rubyweekly.com

Highlights

Ruby 2.5 Enables Thread.report_on_exception by Default

例外発生時にスタックトレースなど吐かずに無言で終了してたスレッドは、Rails 2.5 移行デフォで吐くようになった。

GraalVM: Oracle's Universal Virtual Machine

実験的な高パフォーマンス TruffleRuby がベースにしてる GraalVM。

NGINX Unit 1.0: An App Server That Supports Ruby (and Others)

NGINX のアプリサーバ NGINX Unit v1.0 リリース。

Running a Government Department on Ruby for Over 12 Years

Sequel、Roda のメンテナー Jeremy Evans 先生がカリフォルニア州監査局で 12 年も働いた経験を語ったスライド。

  • 政府機関発注の IT システムはほとんど高コストの巨大 SAP システムだが、カリフォルニア州監査局は低コストの小規模 Ruby ウェブアプリ
  • アプリが 3 つある:
    1. 局員管理などの局内処理用イントラネットサイト
    2. 入局試験や応募者評価用の採用サイト
    3. 監査完了後の政府機関への改善案の遂行までのワークフロー管理サイト
  • セキュリティ第一

Legend of The Sourcerer: A Ruby Text Adventure Game

Ruby 製テキストベース RPG

Tutorials

Full Text Searching Linux Man Pages with Elasticsearch and Ruby

Linuxman ページの ElasticSearch 検索機能実装手順。

Stop Robots and Crawlers From Causing Errors in Rails

ボットや検索エンジンクローラーが発生させたエラーを is_crawler gem で抑える方法。エラーログのノイズなどを減らすように。

For Want of Pattern Matching in Ruby: The Creation of Qo

実験的なパターンマッチング gem。

Where Are They Now? Revisiting Ruby 2.3's Goodies

2 年も前に Ruby 2.3 で導入された機能の振り返り。

  • &.
  • Hash#digArray#dig

Ruby's SignalException Exception

kill -9 などしたら、SignalExceptionrescue していても、処理が終わる前に強制終了してしまう。ちゃんと処理するには Signal.trap が必要。

Refactoring for the 'Tell Don't Ask' Pattern

漢字フラッシュカードゲームの正解判定ロジックを「求めるな、命じよ」パターンでリファクターした話。

Migrating from state_machine to AASM in Rails

メンテされなくなった state_machine gem から aasm gem に移行した手順。

Code & Tools

WordpRSS: Pull Any WordPress RSS Feed with Ruby

WordPress ブログの RSS フィード取得用 gem。

ActionPolicy: Authorization Framework for Ruby and Rails Apps

RubyRails アプリ向け認可フレームワーク gem。Pundit の物足りないところを補ってくれるらしい。

JSONAPI::Consumer: ActiveModel-Compliant Framework for Consuming JSON API Services

JSONAPI クライアント gem。インタフェースは ActiveModel 同等。

kms_encrypted: Simple, Secure Key Management for attr_encrypted

attr_encrypted gem がキー管理までやってくれないので、この gem が KMS 方式で管理してくれる。Amazon KMS、Google KMS 対応。

render_async: Render View Partials Asynchronously via Ajax

Rails ビューの partial を AJAX で非同期ロード、レンダー高速化してくれる gem。

jwt_sessions: XSS/CSRF-Safe JWT Auth for Single Page Apps

SPA 向け JWT セッション用 gem。XSSCSRF 対応付き。