Ruby脚本以Gem开头意味着什么?
我正在学习Ruby,有一件事我在几个实例中看到过,但我不能理解,那就是以关键字gem开头的脚本 可以在中看到一个例子 我理解访问另一个gem时的require语句,但是gem“amqp”、“1.3.0”的确切含义是什么?这是(在当前的Ruby版本中默认需要Rubygems)。它激活特定版本的gem(在本例中为Ruby脚本以Gem开头意味着什么?,ruby,gem,require,Ruby,Gem,Require,我正在学习Ruby,有一件事我在几个实例中看到过,但我不能理解,那就是以关键字gem开头的脚本 可以在中看到一个例子 我理解访问另一个gem时的require语句,但是gem“amqp”、“1.3.0”的确切含义是什么?这是(在当前的Ruby版本中默认需要Rubygems)。它激活特定版本的gem(在本例中为amqpgem的1.3.0版),这意味着gemlibdir(或gem指定的任何dir)将添加到您的LOAD\u路径,以及它拥有的任何从属gem的libdir 它还检查是否与任何已激活的gem
amqp
gem的1.3.0版),这意味着gemlib
dir(或gem指定的任何dir)将添加到您的LOAD\u路径
,以及它拥有的任何从属gem的lib
dir
它还检查是否与任何已激活的gems版本不兼容
所有宝石在使用时都会被激活。这通常在调用require
时发生。调用gem
会激活gem,但并不需要它的任何文件,因此下面的行需要“amqp”
(注意amqp
gem
方法引用的amqp
gem与amqp
文件之间的区别,后者包含在amqp
gem中,是方法引用的所需文件)
此方法用于确保您使用的是特定版本的gem,而不需要使用(或类似的东西)。Bundler在Gemfile
s中也使用了gem
方法,但这是一种不同(但类似)的方法
它还用于指定您希望使用作为标准库一部分的库的gem版本(例如,如果您希望使用更新的版本)。例如,与Ruby一起分发的Yaml库也是
gem "amqp", "1.3.0"
require "amqp"
require File.join(File.dirname(__FILE__), "base")