这个问题我真的问的是,为什么需要不带宝石的名称。 此外,在它没有的情况下,什么是寻找秘密咒语,要求该死的东西,最简单的办法!?
举个例子,如果我有memcache-client
安装的话,我有权要求它使用
require 'rubygems'
require 'memcache'
这个问题我真的问的是,为什么需要不带宝石的名称。 此外,在它没有的情况下,什么是寻找秘密咒语,要求该死的东西,最简单的办法!?
举个例子,如果我有memcache-client
安装的话,我有权要求它使用
require 'rubygems'
require 'memcache'
有什么需要包含该文件是没有标准的。 但也有一些普遍遵循惯例,你可以可以按照尝试和使用:
require mygem
会工作。 #{gemname}/lib
的.RB文件,如果只有一个,它是一个相当不错的选择那就是需要一个 如果所有的作品,那么所有你能做的就是看看宝石的目录(您可以通过运行找到gem environment | grep INSTALLATION | awk '{print $4}'
和看在lib目录下,你可能需要阅读文件并希望有一个注释说明做什么
我的系统也似乎不知道RubyGems的存在 - 除非我告诉它。 该“规定”命令得到由RubyGems的覆盖,所以它可以加载的宝石,但除非你有RubyGems的已经要求它不知道该怎么做。 所以,如果你在写你自己的,你可以这样做:
require 'rubygems'
require 'gem-name-here'
如果你正在运行别人的代码,你可以做到这一点与在命令行:
ruby -r rubygems script.rb
此外,还有一个环境变量的Ruby用它来确定它应该在启动时加载:
export RUBYOPT=rubygems
(从http://www.rubygems.org/read/chapter/3 。环境变量的事情是向我指出的猎户座爱德华兹 )
(如果“要求‘RubyGems的’不为你工作,但是,这个建议是有限的帮助:)
该要求必须映射到Ruby的路径下的文件。 你可以找出宝石是通过运行“宝石环境”安装(寻找安装目录):
kburton@hypothesisf:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.2.0
- RUBY VERSION: 1.8.7 (2008-08-08 patchlevel 71) [i686-linux]
- INSTALLATION DIRECTORY: /usr/local/ruby/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/ruby/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/ruby/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/local/ruby/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/
kburton@editconf:~$
然后,你可以找你试图要求特定的.rb文件。 此外,还可以输出$内容:从IRB看到的是红宝石将用于模块搜索路径列表:
kburton@hypothesis:~$ irb
irb(main):001:0> $:
=> ["/usr/local/ruby/lib/ruby/site_ruby/1.8", "/usr/local/ruby/lib/ruby/site_ruby/1.8/i686-linux", "/usr/local/ruby/lib/ruby/site_ruby", "/usr/local/ruby/lib/ruby/vendor_ruby/1.8", "/usr/local/ruby/lib/ruby/vendor_ruby/1.8/i686-linux", "/usr/local/ruby/lib/ruby/vendor_ruby", "/usr/local/ruby/lib/ruby/1.8", "/usr/local/ruby/lib/ruby/1.8/i686-linux", "."]
irb(main):002:0>
此外轨人们应该记住安装的宝石后重新启动服务器导轨
您需要包括只有当你使用宝石安装宝石“的rubygems”。 否则,秘密咒语会火起来IRB和尝试不同的组合。 此外,让您包括创业板的安装目录的目录,在LOAD_PATH你可以通过-I选项Ruby解释。 需要注意的是$ LOAD_PATH是一个数组,这意味着你可以从你的脚本中,将其添加目录。
这个问题我真的问的是,为什么需要不带宝石的名称。
安装宝石获取文件到您的系统。 它不会作出什么这些文件将被称为索赔。
正如劳里指出,有几个约定,他们是如何命名的,但没有什么强制执行这就是,很多创业板的作者很遗憾没有坚持给他们。
此外,在它没有的情况下,什么是寻找秘密咒语,要求该死的东西,最简单的办法!?
阅读你的宝石文档?
我觉得google搜索rdoc gemname
通常会发现你的宝石官方rdocs ,通常告诉你如何使用它。
内存缓存也许不是最好的例子,因为他们认为你会使用它的轨道,和“需要”将已经为你做了,但我看到大多数其他的有实例显示正确的“需要”咒语
我只是遇到的一个问题是,实际建成的宝石不包括所有的,它应该有文件。
有问题files
是,有在中gemspec语法错误,但在生成过程中被抛出任何错误。
万一别人在这里添加此运行到同样的问题。
我也有这个问题,因为在安装OS X Lion中,发现即使我跑到下面的代码我仍然会得到警告消息。 require 'rubygems'
require 'nokogiri'
我想在这里和在网络上发布的解决方案的负荷,但最终我的工作它的解决方案是简单地按照指示在http://martinisoftware.com/2009/07/31/nokogiri-on-leopard.html重新安装的libxml和来自的libxslt源,但要确保我安装的libxml的版本匹配的,是由引入nokogiri预期的一个。
有一次,我这样做了,警告就走了。
因为我使用RVM,并试图使用Ruby的版本错误我有这个问题。 有问题的宝石需要1.9.2和我设置2.0.0作为我默认! 也许一个愚蠢的错误,但一个别人到达此页面上可能会取得。
手表宝石的来源和检查lib
目录。 如果没有rb
文件,那么你必须指向宝石主要rb
在子目录中的文件:
require 'dir/subdir/file'
对于/lib/dir/subdir/file.rb
。