41 votes

Conventions de nommage des gemmes Ruby

Je crée une gemme rubis et j'ai remarqué qu'il ne semble pas y avoir (à ma connaissance) de convention de dénomination pour les gemmes. Par exemple, j'ai vu les deux:

 gem 'foo-bar'
gem 'foo_bar'
 

Existe-t-il une sorte de guide / convention définitif pour la désignation des gemmes de rubis?

67voto

iain Points 11602

Les pointillés version est pour les extensions sur d'autres cadres, comme rspec-rails et le trait de soulignement est pour une partie de la normale gem nom et devrait être en camelcase dans vos classes.

Donc, si vous avez un joyau nommé foo_bar, la classe/module devrait être nommé en FooBar. Si ce bijou devrait avoir un rails d'extension livré avec un autre bijou, il doit être appelé en foo_bar-rails et le module doit être appelés FooBar::Rails et il devrait être exigé que require "foo_bar/rails"

Cette convention est aussi ce que Bundler essaie de besoin.

Certes, cette convention n'est pas toujours suivi. jquery_rails doit être réellement jquery-rails et factory_girl_rails doit être appelé en factory_girl-rails. Mais bon, tout n'est pas parfait.

RubyGems convention docs:

5voto

tjstankus Points 581

Il s'avère que cela est répondu assez clairement et succinctement dans la documentation de rubygems: http://guides.rubygems.org/name-your-gem/

(Ceci peut être un ajout récent à la documentation car je me souviens d'avoir recherché cette information dans le passé et de ne pas l'avoir trouvée.)

4voto

fguillen Points 11849

Dans une recommandation de @svenfuchs:

  • trait de soulignement => camelized
  • trait d'union => nom::espace

https://twitter.com/svenfuchs/status/135773593526206464

Mais c'est vrai que je vois encore de la non-cohérence des comportements comme:

gem 'my_gem`, :require => 'my-gem'

https://twitter.com/#!/svenfuchs/statut/135784542819713024

4voto

tadman Points 70178

L’un des avantages est la convention qui consiste à regrouper foo_bar en module ou classe FooBar en ce qui concerne les autochargeurs. foo-bar n'a pas d'équivalent par défaut.

Généralement, la version soulignée est préférable du point de vue require , mais la version en pointillé semble plus lisible et a donc tendance à être utilisée souvent.

-1voto

Mitch Dempsey Points 13568

Aucun n'existe à ma connaissance. Personnellement, je préfère utiliser des tirets que des traits de soulignement, mais ce n'est que moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X