Yar*_*rin 0 ruby rubygems bundler
我正在努力建立我的第一颗宝石.使用Ryan Biggs的教程作为我的向导,我做了以下工作:
1)创建了宝石脚手架:
$ bundle gem hello_world
Run Code Online (Sandbox Code Playgroud)
2)编辑了lib/hello_world.rb文件:
require "hello_world/version"
module HelloWorld
def hi
"Hello world!"
end
end
Run Code Online (Sandbox Code Playgroud)
3)通过捆绑器安装gem:
$ cd hello_world
$ bundle install
Run Code Online (Sandbox Code Playgroud)
此时,如果我跑了
$ bundle show hello_world
Run Code Online (Sandbox Code Playgroud)
表明
/Users/ykessler/gems/hello_world
Run Code Online (Sandbox Code Playgroud)
所以它看起来像安装.
但是当我尝试从irb中获取宝石时:
require '/Users/ykessler/gems/hello_world'
Run Code Online (Sandbox Code Playgroud)
它无法加载它:
2.0.0-p195 :003 > require '/Users/ykessler/gems/hello_world'
LoadError: cannot load such file -- /Users/ykessler/gems/hello_world
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from (irb):3
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
你需要跑 gem build hello_world.gemspec
然后安装它,gem install hello_world从gem项目的根目录运行.这将使用我们刚刚在您的目录中创建的.gem文件来安装您的本地gem(如果存在,则不是来自rubygems.org的gem).
现在,如果你跑gem list,你应该看到它.您现在应该可以要求您的gem并从其他ruby代码访问您的库.你要写的就是require 'hello_world'.无需键入完整路径.事实上,这是个坏主意.
这些都在rubygems.org文档(http://guides.rubygems.org/make-your-own-gem/)中非常清楚地解释了.这很清楚,很有帮助,而且这也是我学习如何制作我的第一颗宝石的地方.
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |