相关疑难解决方法(0)

Ruby:require vs require_relative - 在Ruby <1.9.2和> = 1.9.2中运行的解决方法的最佳实践

如果我想require在Ruby中使用相关文件并且希望它在1.8.x和> = 1.9.2中工作,那么最佳实践是什么?

我看到几个选项:

  • 只是去$LOAD_PATH << '.'忘记一切
  • $LOAD_PATH << File.dirname(__FILE__)
  • require './path/to/file'
  • 检查RUBY_VERSION<1.9.2,然后定义require_relativerequire,require_relative随后在需要的地方使用
  • 检查是否require_relative已存在,如果已存在,请尝试按上一种情况继续操作
  • 使用奇怪的结构 - 例如
    require File.join(File.dirname(__FILE__), 'path/to/file')
    Run Code Online (Sandbox Code Playgroud)
    它们似乎不能在Ruby 1.9中工作,因为,例如:
    $ cat caller.rb
    require File.join(File.dirname(__FILE__), 'path/to/file')
    $ cat path/to/file.rb
    puts 'Some testing'
    $ ruby caller
    Some testing
    $ pwd
    /tmp
    $ ruby /tmp/caller
    Some testing
    $ ruby tmp/caller
    tmp/caller.rb:1:in 'require': no such file to load -- tmp/path/to/file (LoadError)
        from tmp/caller.rb:1:in '<main>' …
    Run Code Online (Sandbox Code Playgroud)

ruby ruby-1.9 ruby-1.8

153
推荐指数
5
解决办法
7万
查看次数

你想在Ruby语言中改进哪些东西?

您希望Ruby(以及更常见的Ruby社区)改进的内容是什么?

我读到某个地方,Ruby是Smalltalk和LISP的爱孩子,Perl小姐是保姆.

我非常尊重Ruby的父母,但我不确定我是否喜欢Perl小姐对孩子的影响.具体来说,我不喜欢预定义的变量:我需要一个备忘单来了解它们的含义.你可以说"只是不要使用它们".好吧,我不......但其他人也这样做.当我在网上下载插件时,如果我需要去触摸源代码,我别无选择,只能获取我的备忘单.我只是希望他们能从语言中删除那些.

另外,我认为Ruby太过移动了.我的代码在每次新的Ruby升级时都会中断,即使是在次要版本上.Ruby on Rails和我使用过的大多数Rails插件也是如此:它们只是一直在变化,似乎没有人关心这些变化是否会破坏一切.恕我直言,虽然我喜欢Ruby中的很多东西,但这种缺乏稳定性几乎是一个显示阻碍.

ruby stability

10
推荐指数
2
解决办法
782
查看次数

RSpec中的相对文件路径

我有一个RSpec测试/lib/classes,需要访问一个zip文件(没有上传).该文件存储在/spec/fixtures/files/test.zip.如何输入正确的路径以使其与环境无关,即没有绝对路径?

ruby rspec

8
推荐指数
3
解决办法
1万
查看次数

标签 统计

ruby ×3

rspec ×1

ruby-1.8 ×1

ruby-1.9 ×1

stability ×1