大きな Rails プロジェクトの一部としてコードを開発しました。今度は、Rails とは別に、別のスクリプトとして抽出して、コミュニティと共有したいと考えています。
これは私の最初の gem であり、日付関数と語形変化を比較的小さな gem の一部として使用することは、Active Support を含めてやり過ぎかもしれません。
これに対する最善の解決策は何ですか?
大きな Rails プロジェクトの一部としてコードを開発しました。今度は、Rails とは別に、別のスクリプトとして抽出して、コミュニティと共有したいと考えています。
これは私の最初の gem であり、日付関数と語形変化を比較的小さな gem の一部として使用することは、Active Support を含めてやり過ぎかもしれません。
これに対する最善の解決策は何ですか?
これは本当に主観的な呼びかけです。ActiveSupportは多くの便利な日付操作方法を提供しますが、それは非常に頑丈であり、それを予期していないプロジェクトに含まれると絶対的な混乱を引き起こす可能性があります。オートローダーシステムなどの一部の機能を有効にすると、require
動作方法や欠落しているクラスの処理方法が劇的かつ予期しない方法で変更される可能性があります。
とにかくRailsまたはActiveSupportとペアになる可能性のあるプロジェクトを作成している場合、それはおそらく大したことではありません。これがめったに起こらない場合は、依存関係がないように、独自のモジュールでdateメソッドを再実装することをお勧めします。
ActiveSupportは多くのコアクラスに大幅な再装飾を行うため、gemを使用している人々にそれを課すことは、おそらくあなたのgemをかなり手に負えないゲストにしていることを覚えておいてください。
また、依存関係地獄で立ち往生することよりも厄介なことがいくつかあります。1つはXより新しいActiveSupportで動作せず、もう1つはそれと同じくらい古いバージョンでは動作しません。つまり、まったく動作する単一のバージョンはありません。
ActiveSupport は、必要な機能を簡単に選択できるようにリファクタリングされました。
詳細については、コア拡張機能のページをご覧ください。
本格的な Ruby 開発者が Rails とそのコンポーネントを既にインストールしていることは、かなり一般的だと思います。ActiveSupport の特定のバージョンに固執しないでください。彼らがコア拡張を開始したバージョンを必要最小限として指定してください。
ActiveSupport のソース (https://github.com/rails/rails/tree/master/activesupport) を見て、必要なクラスやメソッドを抽出してください。