Howto: Choose the right gems for your project
Adding a gem means you take over the liability towards the external code.
Based on "To gem, or not to gem":
- Gem is really needed (prefer writing your own code for simple requirements without many edge cases)
- Gem is tested well (coverage and quality)
- Gem has a good code quality
- Gem's licence fits to the project requirement
- Try to avoid gems that do much more than your requirement scope needs
- Gem has a good maturity and maintenance
- Gem has a good / familiar DSL
- If it's hard to do right, choose a mature gem (e.g. Devise or Clearance for authentication) instead of building it yourself
Also see the chapter "Owning your Stack" in the book Growing Rails Applications in Practice.