ruby-on-rails - que - ruby on rails tutorial
Ruby gema nombrando convenciones (4)
En una recomendación de @svenfuchs:
- subrayado => camelizado
- hyphen => nombre :: espacio
https://twitter.com/svenfuchs/status/135773593526206464
Pero es verdad que todavía veo comportamientos de falta de coherencia como:
gem ''my_gem`, :require => ''my-gem''
Estoy creando una gema de rubí y me he dado cuenta de que no parece haber (según mi conocimiento) una convención de nombres para las gemas. Por ejemplo, he visto ambos:
gem ''foo-bar''
gem ''foo_bar''
¿Hay algún tipo de guía / convención definitiva para el nombramiento de gemas de rubí?
La única ventaja es la convención de colapsar foo_bar
en el módulo o clase FooBar
en lo que respecta a los cargadores automáticos. foo-bar
no tiene un equivalente predeterminado.
En general, la versión de guión bajo es preferible desde la perspectiva de require
, pero la versión punteada aparece como más legible, por lo que tiende a utilizarse con frecuencia.
La versión discontinua es para extensiones en otros marcos, como rspec-rails
y el guión bajo es parte del nombre de la gema normal y debe incluirse en sus clases.
Entonces, si tienes una gema llamada foo_bar
, la clase / módulo debería llamarse FooBar
. Si esa gema debe tener una extensión de rieles que se envía como una gema diferente, debe llamarse foo_bar-rails
y el módulo debe llamarse FooBar::Rails
y debe requerirse como se require "foo_bar/rails"
Esta convención es también lo que Bundler intenta requerir.
Es cierto que esta convención no siempre se cumple. jquery_rails
debería ser jquery-rails
y factory_girl_rails
debería llamarse factory_girl-rails
. Pero bueno, no todo es perfecto.
Documentos de la convención de RubyGems:
Resulta que esto se responde de manera bastante clara y sucinta en los documentos de rubygems: http://guides.rubygems.org/name-your-gem/
(Esta puede ser una adición reciente al doc porque recuerdo haber buscado esta información en el pasado y no haberla encontrado).