Ha habido preguntas con respuestas en how a write rubygems, pero ¿qué debe evitar al escribir un rubygem? ¿Qué puede causar problemas para las personas que usan su rubygem?Gotchas para escribir rubygems
Respuesta
Gem Packaging: Best Practices da un montón de consejos, algunos de los cuales incluyen
no contaminan el camino de carga global. Idealmente, solo tiene
foo.rb
en su directoriolib
, y ponga todos sus otros archivos enlib/foo
.No
require
archivos usando__FILE__
.No confíe en nada fuera de la ruta de carga. Las carpetas pueden no tener la misma estructura que en su versión original. Por ejemplo, no use algo como
VERSION = :: File.read (:: File.join (:: File.dirname (FILE), "..", "..", "VERSION ")). strip
No administrar
$LOAD_PATH
dentro delib
.Proporcione una constante
VERSION
.No dependa de rubygems. La persona que usa su código puede no estar usando rubygems, sino algún otro sistema de empaque (o ningún sistema de empaque). Del mismo modo, no mencione las dependencias de versión en el código en sí, o
rescue Gem::LoadError
.
Rubygems dependencies. Please... sostiene que no se deben listar las dependencias de tiempo de ejecución opcional, y debe separar desarrollador de dependencias en tiempo de ejecución.
From my own experience: si nada más, intente construir e instalar su gema localmente antes de liberarla en libertad. Evita las liberaciones de bolsas de papel marrón.
- 1. ReSharper Gotchas
- 2. ASP.NET - Común Gotchas
- 3. ASP/VBScript "Gotchas"
- 4. Javascript/jQuery "Gotchas"
- 5. method_missing gotchas en Ruby
- 6. .NET Resource Leak Gotchas
- 7. requieren 'rubygems'
- 8. Vala: Gotchas, consejos y trucos
- 9. ¿Cómo se degradan rubygems?
- 10. Dependencias opcionales de Rubygems
- 11. Rubygems. LoadError in Rails
- 12. Gotchas/errores en desarrollo para WebKit en iOS o Android
- 13. ¿Qué git gotchas has sido atrapado?
- 14. No se puede actualizar RubyGems
- 15. requieren que 'rubygems' no funcione
- 16. Rubygems, Bundler y confusión RVM
- 17. ADVERTENCIA: Índice RubyGems 1.2+ no encontrado para: \t RubyGems volverán a índices de legado que degradan el rendimiento
- 18. "rvm rubygems current" vs "rvm update --system" vs "gem update rubygems-update"
- 19. ¿Debo alojar gemas en GitHub o RubyGems?
- 20. ¿Usa versiones múltiples de rubygems con rvm?
- 21. Ruby gem LoadError - rubygems/defaults/operating_system
- 22. ¿Volver a cargar rubygems en irb?
- 23. ¿Por qué es "incorrecto requerir rubygems"?
- 24. Rubygems: ¿Cómo agrego la dependencia específica de la plataforma?
- 25. ¿Es posible escribir código para escribir código?
- 26. Gotchas de pasar de desarrollar ASP.NET a aplicaciones de Winforms
- 27. Llamada falsa para escribir()
- 28. getResourceStream para escribir archivos
- 29. Escribir pruebas para DAO
- 30. Cómo puedo obtener RubyGems 1.3.6 en Ubuntu 10.4
Definitivamente una buena y correcta descripción, especialmente con la referencia a "Gem Packaging: Best Practices" –
Su último punto es muy importante. Básicamente podría reformularse como: "Una cuestión importante para escribir Ruby Gems es no escribir gemas, escribir bibliotecas". –
@ Jörg: muy zen. (El último punto de "Gem Packaging: Best Practices" es decir, no el "De mi propia experiencia") –