gpt4 book ai didi

ruby - 如何从本地子目录加载 gem ?

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:11 25 4
gpt4 key购买 nike

我有一个项目(参见 https://github.com/marick/growing-oo-software-in-ruby),其中 Gem 都在本地目录/third-party 下但是,在我的 Ruby 1.9 环境中,我在加载用于运行示例的 gem 时遇到问题...

要了解磨损情况,我想了解 ruby​​gems 的要求和用法。为此,我做了如下设置:

   .   |____env   | |____gem   | | |____gems   | | | |____testgem.rb   |____sandbox.rb   |____src   | |____foo   | | |____foo.rb

如何使用沙盒来实际需要 testgem.rb 并使其可供 foo.rb 访问?像 flexmock 这样的 gem 有一个特例。假设 testgem.rb 看起来像:

   require 'flexmock/base'   require 'flexmock/test_unit_integration'

foo.rb 将如何访问 testgem.rb 的子文件?

最佳答案

当您执行类似require 'foo' 的操作时,Ruby 会在您的loadpath 中查找此源文件。

您可能会对这篇文章感兴趣,http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices

您的 loadpath 只是一个数组,在 1.9 中别名为 $: - 您可以像这样添加它:

$:.unshift File.expand_path("../../env/gem/gems", __FILE__)
require "testgem"

关于ruby - 如何从本地子目录加载 gem ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com