rastam on rails

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

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

rubyweekly.com

Highlights

Mining for Malicious Ruby Gems: 700+ Gems Affected

gem 名 typo を狙ってる悪質 gem 760 個も検知した Reversing Labs 社。問題の gem は全部 RubyGems から削除済み。

悪質 gem の中で一番インストールされた gem は、Windows クリップボードにコピーされた仮想通貨ウォレットを攻撃者のウォレットで置き換えてる。

Full Text Search in Milliseconds with Rails and Postgres

PostgreSQL 12 以上の全文検索機能解説と Rails での導入方法。

  • to_tsvector 関数で単語正規化
  • to_tsquery 関数でクエリ正規化
  • ts_rank 関数でランク付け
  • pg_search gem
  • 正規化した単語をキャッシュするカラムを追加する migration

Rails Performance: When is Caching the Right Choice?

デメリットを伴うキャッシュを実装する前の代替案検討手順。

  1. rack-mini-profiler gem でネック特定。
  2. benchmark-ips gem で軽量化前後のパフォーマンス測定。
  3. ネックがビュー or DB or アプリコードのどれにあるか特定。それぞれ軽量化方法が違う。

Articles & Tutorials

RSpec Given/When/Then with Symbols

rspec-given で feature spec 可読性向上。

Looking Inside a Ruby Gem

gem build コマンドが生成する .gem ファイルの中身解説。

Logic-less Ruby Templates with Mustache

ビューへのロジック埋め込みを不可能にしてくれる mustache フレームワーク

Code and Tools

Impressionist 2.0: A Plugin to Log Impressions in Rails Apps

インプレッション数を DB で保存してくれる gem。ボット無視してくれる。メンテナー募集中。

acli 0.3: A Command Line Client for Action Cable

Action Cable クライアント用 CLI

Undercover: A Tool to Stop You Shipping Untested Code

変更したコードの差分内の、テストされてないコードを検知してくれる gem。

Bridgetown: A Modern Ruby (JAMstack) Web Framework

JAMstack 方式の静的サイト用フレームワーク。Webpack に対応した Jekyll フォーク。

net-ssh 6.0: A Pure Ruby Implementation of the SSH2 Client Protocol

SSH クライアント用 gem。