ruby - 了解 gem 规范版本

标签 ruby rubygems dependencies

我正在使用 compass ruby​​ gem(版本 0.7.11),当我运行 gem spec compass 时,部分输出为:

dependencies:
- !ruby/object:Gem::Dependency
  name: sass
  requirement: !ruby/object:Gem::Requirement
    none: false
    requirements:
    - - ~>
      - !ruby/object:Gem::Version
        version: '3.1'
  type: :runtime
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    none: false
    requirements:
    - - ~>
      - !ruby/object:Gem::Version
        version: '3.1'

当我运行gem install compass -v 0.7.11时,它确实安装了正确版本的compass,但它引入了sass 3.2。我认为 ~> 会将其保持在 3.1.x 范围内。有人能解释一下发生了什么吗?

最佳答案

杰夫,

语法 ~> 显示了丢弃最小版本数字的依赖项,因此 ~> 3.1 意味着,您可以获得 4.0 之前的每个版本.

请注意,最后一位数字很重要。假设您编写 ~> 3.1.0,在这种情况下,您将获得 3.2.0 之前的每个版本。

请在~>(又名twiddle-wakka)上查找一些其他想法here .

关于ruby - 了解 gem 规范版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203326/

相关文章:

ruby - 使用bundler安装redmine需要root密码

go - 你怎么知道你的 github golang repo 是否被使用了?

javascript - 无法理解 Angular JS 中的 Controller 功能

javascript - 补丁 Rails 3 以修复 CSRF 保护漏洞

ruby-on-rails - 我的 Rails 4.2.6 应用程序使用两个数据库。我可以只使用一个进行测试吗?

ruby - 如何从 shell 运行 Ruby gem?

ruby - Dashing 不能在 Heroku 上运行

java - 为什么 webapps 更喜欢/WEB-INF/lib 而不是/META-INF/MANIFEST.MF?

ruby - 是否有更简单的(单行)语法来为一个类方法起别名?

sql - 何时使用 ORM(Sequel、Datamapper、AR 等)与纯 SQL 进行查询