问题标签 [load-path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache2 - RVM - Ruby 集成被提取到一个单独的 gem (`remove $LOAD_PATH.unshift`)
我正在升级到 Rails 3.2.6(ruby 1.9.3-p194)并在 Debian 上安装 RVM 并使用 Apache2 服务器(2.2.19)。
我使用了这些非常好的说明:http ://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-rails-2-and-rails-3-apps/
Apache 服务器配置/etc/apache2/apache2.conf包括:
当我设置好所有东西(并摆脱大量错误消息:)时,会出现来自乘客的以下错误消息:
RVM - Ruby 集成被提取到一个单独的 gem,它应该默认与 RVM 一起安装,删除该$LOAD_PATH.unshift
行并且一切都应该再次正常。
通过$LOAD_PATH.unshift
在 MyApp/config/setup_load_paths.rb 中注释掉这个错误,我得到一个 500 错误,内部服务器错误。
/etc/log/apache2/error.log:
如果有人能给我关于这个问题的线索,我会非常高兴。
非常感谢。
鸢尾
ruby - 在 Rubygems gemspec 中标记为可执行的 Ocra 和脚本
我创建了一个 gem,它公开了一个在 Linux 下工作的可执行文件。在 Windows 中,如果我导航到安装 gem 的目录,我可以从命令行运行它,但我必须-Ilib
在调用ruby
.
我想使用 Ocra 将可执行文件 + 依赖项(gem 的其余部分)+ Ruby 转换为其他用户的 exe 文件,但文档似乎说手动弄乱加载路径对 Ocra 来说是个坏主意。
我如何告诉 Ocra 使用 gem 的可执行脚本而不自己弄乱 Ruby 的加载路径?我想这将取决于我可以通过某种方式运行可执行脚本,该脚本利用它们是已安装 gem 的一部分并为我找出依赖关系这一事实。
ruby - 使用和不使用 Rails 的快速 (Rspec) 测试
我有两节课:
1.Sale是ActiveRecord的子类;它的工作是将销售数据保存到数据库中。
2.SalesReport是一个标准的Ruby类;它的工作是生成和绘制有关销售的信息。
因为我想使用 TDD 并且我希望我的测试运行得非常快,所以我为不加载 Rails 的 SalesReport 编写了一个规范:
这个测试在我运行时有效bundle exec rspec spec/models/report_spec.rb
。
bundle exec rake spec
但是,当我运行错误时,此测试失败superclass mismatch for class Sale (TypeError)
。我知道错误正在发生,因为 Tap 由sale.rb
规范定义并内联。
所以我的问题是如果没有定义一个类,有没有办法存根(或模拟或双)一个类? 这将允许我删除 inline class Sale; end
,这感觉就像一个黑客。
如果没有,我如何设置我的测试,以便无论我运行bundle exec rspec
还是运行它们都能正确运行bundle exec rake spec
?
如果不是,我编写快速测试的方法是否错误?!
最后,我不想使用Spork。谢谢!
ruby - 无法加载宝石架/测试
我正在尝试将 `rack/test` 加载到我的应用程序中,但由于某种原因它无法正常工作。当我做:
gem list rack-test
我明白了
rack-test (0.6.2)
所以安装好了。
我还可以通过以下方式获取路径:
gem which rack/test
这是
/home/jacky/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-test-0.6.2/lib/rack/test.rb
但是之后
ruby -e 'puts $LOAD_PATH.inspect; $LOAD_PATH << "/home/jacky/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/"; require "rack/test"'
产量
我究竟做错了什么?
ruby - 有没有办法在 Vim 的“嵌入式”Ruby 中使用 Gems?
我正在尝试使用tinder
Vim 内部的 gem。我希望能够写入 Vim 缓冲区,所以我需要使用 Vim 的嵌入式 Ruby using:ruby
而不是外部调用!ruby
.
我gem install tinder
在命令行上运行没有问题,但嵌入式 ruby 似乎在其加载路径上没有相关目录能够要求它。
我尝试通过尝试以下操作来操纵加载路径:
...但收效甚微。
我也尝试过类似的事情:
...但是,同样,收效甚微。
我尝试过解压 Tinder 并要求使用绝对路径,这似乎确实有效,但 unpack 不会解压 gem 的依赖项,因此它无法找到“法拉第”。也许我可以递归解包?
有人对这个问题有任何想法吗?
我搜索了很多,并查看了 Vmail 等项目的来源,但据我所知,没有人在 Vim 的 Ruby 中使用 Gems。这似乎是一种可怕的耻辱。
我很确定 gem 原生扩展永远不会工作,无论我尝试什么 - 但我很高兴能够需要纯 Ruby gem。
非常感谢。
ruby - 有没有更好的方法来确保 ruby 的 LOAD_PATH 不会搞砸?
我试图避免向 ruby's 添加冗余路径LOAD_PATH
。这不是一项非常复杂的任务,我只是想知道是否有比我想出的更清洁的方法。
这是我目前的解决方案:
$LOAD_PATH.unshift SOME_PATH
然后,您不会像往常一样打电话
add_loadpath SOME_PATH
这是为了避免在加载路径包含两个指向同一个文件夹但不是同一个字符串的路径时出现问题。例如foo/../bar
和bar
ruby - 在Ruby中的加载路径之外需要文件
我有一个我编写的 gem,它有许多处理程序,每个处理程序在 gem 中都有自己的 ruby 文件。我需要添加在命令行上指定文件的功能,该文件将以与这些其他处理程序相同的方式加载。该文件通常不在 gem 的默认加载路径中。
我不确定执行此操作的最佳方法。我可以取文件名,然后将包含目录添加到加载路径,然后加载文件。我可以让用户指定一个包含要读取的处理程序的目录,而不是指定文件,或者我确信有更好的方法来做到这一点,我还没有想到。
emacs - emacs:加载路径和要求(无法打开加载文件)
我在加载路径变量似乎没问题时遇到"Cannot open load file"
错误:(require 'org-mime)
奇怪的是,补救措施看起来像这样(.emacs):
它不仅仅是丑陋的:它是功能失调的,因为版本化的路径可能会发生变化。但为什么会出错?
ruby - 在现有项目中直接运行 Ruby 源代码时发生 LoadError
我是 Ruby/JRuby 的新手,当我尝试直接运行某些项目的 Ruby 源代码时,我已经被错误“LoadError: no such file to load”困扰了好几个星期。
我从 GitHub 下载了许多 Ruby 项目的源代码。是的,只有源代码,我没有安装它们,因为我的任务更多是分析代码本身。
举个例子,假设项目“rqrcode”具有以下(简化的)结构:
- 二维码
- 库(文件夹)
- rqrcode(文件夹)
- core_ext(文件夹,里面有一些文件)
- core_ext.rb
- qrcode(文件夹,里面有一些文件)
- 二维码.rb
- rqrcode.rb
- rqrcode(文件夹)
- 测试(文件夹)
- 数据.rb
- test_rqrcode.rb
- 库(文件夹)
因此,如果我在测试文件夹中运行“jruby test_rqrcode.rb”,它会在文件内的这一行抛出 LoadError:
它还会在这里抛出 LoadError,即 lib 文件夹中的 rqrcode.rb 文件:
错误信息是
我真的不明白为什么它说找不到“rqrcode/core_ext”,因为那个文件夹确实存在!
这种错误并不总是发生。有时,当我下载与上述结构相似的其他 Ruby 项目的源代码时,它会成功运行所有“require”、“require_relative”语句。
我的朋友说这是一个 Ruby 默认加载路径问题。因此,我查看了我的 Ruby 加载路径中的内容。它充满了许多 Ruby 文件。但是,那些成功运行的 Ruby 项目在这些加载路径中也没有它们的 Ruby 文件(并且它们不使用“.unshift”来修改其代码中的加载路径)。所以我认为这不是那些失败项目的原因。
希望有人能解开我的疑惑。也许是因为我的 JRuby 配置?我正在使用 Mac。我的 JRuby 版本是 1.7.4。
ruby - 为什么即使“。”加载“file.rb”也有效 不在加载路径中?
我在 /Projects/test 中创建了一个项目,其中包含以下文件:
在first.rb
中,我这样做:
它被正确加载。但是,如果我打开控制台并键入$:
,则在加载路径中看不到当前目录"."
。Ruby 怎么知道'second.rb'
从哪里加载它?