gem - 为什么使用 .freeze 和 .dup SomeGem::VERSION?

标签 gem rubygems

当我在阅读时 https://github.com/thoughtbot/high_voltage源代码,我在 gem 规范文件中找到:

Gem::Specification.new do |s|
  s.name        = 'high_voltage'
  s.version     = HighVoltage::VERSION.dup

lib/high_voltage/version.rb 文件中:

module HighVoltage
  VERSION = "2.2.1".freeze
end

这样做有什么好处?

最佳答案

根据 http://alexpeattie.com/blog/defining-versions-in-ruby-gems/ , 它使字符串不可变,因此不会意外更改。

关于gem - 为什么使用 .freeze 和 .dup SomeGem::VERSION?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27561476/

相关文章:

ruby-on-rails - 安装 posix spawn 时出现 UTF-8 设置问题

jquery - 捆绑 jquery-rails 失败并出现错误?

gem - 执行 gem 时出错 ... (Errno::EMSGSIZE)

ruby-on-rails - 运行 Rails 服务器时出错 - 如何更改 ruby​​gem 环境的默认 ruby​​?

rubygems - 无法加载此类文件 - 捆绑程序/安装程序(LoadError)

ruby - custom_require.rb :36: in `gem_original_require'

elasticsearch - 如何将 gem 添加到 Logstash 中

ruby-on-rails - AWS Elastic Beanstalk Rails Bundler 失败

mysql - 无法在 OS X 上安装 mysql gem

ruby-on-rails - 用于开发的本地 Gem 路径和用于生产的远程 Git repo