我正在构建一个有关Ruby on Rails是否存在的条件逻辑的gem。一些伪代码从gem_name/lib/gem_name.rb
在初始化初始化时检查Rails
# do stuff for all situations
if [Rails is present]
# do extra rails stuff
end
什么是在宝石内执行这样的检查的标准方式是什么?
我正在构建一个有关Ruby on Rails是否存在的条件逻辑的gem。一些伪代码从gem_name/lib/gem_name.rb
在初始化初始化时检查Rails
# do stuff for all situations
if [Rails is present]
# do extra rails stuff
end
什么是在宝石内执行这样的检查的标准方式是什么?
我会去的:
if defined?(Rails)
...
end
查找文档defined?
这里:http://ruby-doc.org/docs/keywords/1.9/Object.html#method-i-defined-3F
该方法定义在哪里?我似乎无法找到它'ruby-doc.org' – 2014-11-22 02:24:33
http://ruby-doc.org/docs/keywords/1.9/Object.html#method-i-defined-3F – 2014-11-22 16:33:53
需要注意的是,这取决于你的使用情况,您可能希望检测的ActiveRecord或者一些其他的Rails库,而不是。另外,一般来说,我更喜欢手动的init代码,以神奇的代码。 – 2014-11-22 01:05:54