Следует ли использовать тире или подчеркивания при назначении драгоценного камня с более чем одним словом?
Я смущен тем, что означает соглашение об именах драгоценных камней, когда имя драгоценного камня содержит более одного слова.
-
мышление-sphinx - это имя драгоценного камня, но базовый *.rb файл для этого драгоценного камня - lib/thinking_sphinx.rb(подчеркивание)
-
act-as-taggable-on - это имя драгоценного камня, а базовый *.rb файл называется lib/actions-as-taggable-on.rb(дефисы)
-
factory_girl использует символ подчеркивания как в имени gem, так и в имени базового файла *.rb
Имеет ли значение, если использовать символы подчеркивания или дефисы? Существует ли какой-либо новый консенсус здесь?
Ответы
Ответ 1
У Эрика Ходеля есть запись в блоге по этому вопросу: Рекомендация именования проектов
Рельсы затвердели соглашение сопоставление имен классов CamelCase с подчеркнутые имена файлов (класс IMAPProcesor определяется в imap_processor.rb). Использование подчеркнутых названия драгоценных камней облегчают людям выяснить, какой файл требуется (тот же как название проекта) или какой класс имя, которое нужно искать в ri.
Если у меня есть плагин или расширение Неправильное обращение к названию подпроектов с тире. Если бы я хотел добавить новую обработчик imap_to_rss для банка Chase электронной почты, драгоценный камень будет назван imap_to_rss-погоня.
Ответ 2
Следуя советам здесь, вот таблица того, как все сломается.
| Gem name | Require statement | Main class or module |
|:--------------------|:-----------------------------|:----------------------|
|fancy_require |require 'fancy_require' | FancyRequire |
|ruby_parser |require 'ruby_parser' | RubyParser |
|net-http-persistent |require 'net/http/persistent' | Net::HTTP::Persistent |
|rdoc-data |require 'rdoc/data' | RDoc::Data |
|autotest-growl |require 'autotest/growl' | Autotest::Growl |
|net-http-digest_auth |require 'net/http/digest_auth'| Net::HTTP::DigestAuth |