マイペースなRailsおじさん

Ruby、Ruby on Rails、オブジェクト指向設計を主なテーマとして扱います。だんだん大きくなっていくRuby on Rails製プロダクトのメンテナンス性を損なわない方法を考えたり考えなかったりしている人のブログです。

gemの概要を雑に把握するシリーズ① intridea/multi_json

github.com

概要

システムで利用可能なJSONパーサーのうち、最適なものを選んで使ってくれるJSONパーサーのラッパー。 できるだけ早いものを使うようにしていて、独自に優先順位を付けている。 候補がなにも使えない環境の場合はOkJSONを使う。

仕組み

Adapterクラスで、9種類のJSONパーサに同じインターフェイスをもたせている。偉い。 デザインパターンパターン的にはAdapterパターンかFacadeパターン。 どのAdapterを使うかは、defined?(::Adapter)みたいにして定数の存在を確認する docs.ruby-lang.org