Ruby Weekly #498: 日本語サマリー
Highlights
gem 名 typo を狙ってる悪質 gem 760 個も検知した Reversing Labs 社。問題の gem は全部 RubyGems から削除済み。
悪質 gem の中で一番インストールされた gem は、Windows クリップボードにコピーされた仮想通貨ウォレットを攻撃者のウォレットで置き換えてる。
PostgreSQL 12 以上の全文検索機能解説と Rails での導入方法。
to_tsvector
関数で単語正規化to_tsquery
関数でクエリ正規化ts_rank
関数でランク付け- pg_search gem
- 正規化した単語をキャッシュするカラムを追加する migration
デメリットを伴うキャッシュを実装する前の代替案検討手順。
- rack-mini-profiler gem でネック特定。
- benchmark-ips gem で軽量化前後のパフォーマンス測定。
- ネックがビュー or DB or アプリコードのどれにあるか特定。それぞれ軽量化方法が違う。
Articles & Tutorials
rspec-given で feature spec 可読性向上。
gem build
コマンドが生成する .gem ファイルの中身解説。
- ソースコードが入ってる data.tar.gz
- gem メタデータの YAML が入ってる metadata.gz
- gem 改竄防止用 checksums.yaml.gz
- 暗号化した場合の .gz.sig ファイル
ビューへのロジック埋め込みを不可能にしてくれる mustache フレームワーク。
Code and Tools
Impressionist 2.0: A Plugin to Log Impressions in Rails Apps
インプレッション数を DB で保存してくれる gem。ボット無視してくれる。メンテナー募集中。
Action Cable クライアント用 CLI。
変更したコードの差分内の、テストされてないコードを検知してくれる gem。
JAMstack 方式の静的サイト用フレームワーク。Webpack に対応した Jekyll フォーク。
net-ssh 6.0: A Pure Ruby Implementation of the SSH2 Client Protocol
SSH クライアント用 gem。