Ruby - Naming Convention - letter case for acronyms in class/module names?

前端 未结 3 2059
失恋的感觉
失恋的感觉 2021-01-04 01:20

I need to create a class that represent \"SVN\" inside a module called \"SCM\". But I don\'t know what is the convention when dealing with acronyms in Ruby, and could not fi

相关标签:
3条回答
  • 2021-01-04 01:49

    Add the following to config/initializers/inflections.rb.

    ActiveSupport::Inflector.inflections(:en) do |inflect|
      inflect.acronym 'SVN'
    end
    

    Now running $ rails g model SVN… will create a class named SVN in a file named svn.rb and an associated table svns.

    0 讨论(0)
  • 2021-01-04 01:51

    SCM::SVN looks best to me. Rails is full of classes like ERB, ORM and OMFGIMATEAPOT. And that's not to mention things like JSONSerializer. Ruby's source has a bunch of acronyms, too. The most obvious example to me is YAML. The standard as I've seen it is to upcase letters for CamelCase but generally not to downcase them (although Rails has opinions on model names).

    If you have grep and the source code you can see plenty of examples with something like

    grep -r 'class [A-Z]\{3,\}' <path/to/source>
    # or, if you only want acronyms and nothing like YAMLColumn:
    grep -rw 'class [A-Z]\{3,\}' <path/to/source>
    
    0 讨论(0)
  • 2021-01-04 01:51

    I think that SCM::SVN looks better (aesthetically), and I've seen libraries that use the same convention. It's really just a matter of what you think reads better.

    (However, note that if you are building a Rails project, and want this module to be autoloaded from the /lib directory, you may have to use Scm::Svn.)

    0 讨论(0)
提交回复
热议问题