【发布时间】:2013-08-13 16:59:30
【问题描述】:
我正在创建一个 gem,我想在其中定义一些可用的常量。
在我实际的gemspec 中,我添加了以下内容:
config = File.expand_path('../config', __FILE__)
$LOAD_PATH.unshift(config) unless $LOAD_PATH.include?(config)
require 'constants.rb'
在constants.rb 我定义了一个简单的变量:$FOO = "Hello, World!"
然后在我的lib/gem_name/core.rb 中,我正在尝试puts $FOO,但它似乎不可用。没有错误,只是出现空白。我不了解 gem 依赖项和 require 树在这里的工作原理吗?
** 更新 **
我还尝试直接在 lib 下添加一个 config 目录,该目录已经在 LOAD_PATH 中。然后在我的库中,我试图require config/constants,但这就是说它无法加载这样的文件。
我也尝试直接将constants.rb 移动到 lib 目录并要求这样做,它警告我它无法加载此类文件。有什么东西很不靠谱。
【问题讨论】:
-
不要修改
$LOAD_PATH