2010-04-11 17 views

Respuesta

5

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 directorio lib, y ponga todos sus otros archivos en lib/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 de lib.

  • 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.

+0

Definitivamente una buena y correcta descripción, especialmente con la referencia a "Gem Packaging: Best Practices" –

+0

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". –

+0

@ Jörg: muy zen. (El último punto de "Gem Packaging: Best Practices" es decir, no el "De mi propia experiencia") –