【发布时间】:2018-07-18 07:34:08
【问题描述】:
我刚刚创建了一个名为 maker 的示例 gem。我也在使用 RVM。
this PR 中提供了添加示例用户功能的最新更改。我一直在 Bundler 文档中关注 this guide 来创建一个新的 gem。
我目前正在尝试通过 irb 使用 gem,当我执行 require maker 时出现以下错误:
:001 > require 'maker'
LoadError: cannot load such file -- maker/user
from /Users/mohnishgj/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/mohnishgj/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/mohnishgj/.rvm/gems/ruby-2.4.1@experiments/gems/maker-0.1.0/lib/maker.rb:2:in `<top (required)>'
from /Users/mohnishgj/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `require'
from /Users/mohnishgj/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require'
from /Users/mohnishgj/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from (irb):1
from /Users/mohnishgj/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'
:002 >
当我通过experiments gemset(即/Users/mohnishgj/.rvm/gems/ruby-2.4.1@experiments/gems/maker-0.1.0)导航到安装gem 的位置时,我清楚地看到
该位置缺少user.rb 文件。
/Users/mohnishgj/.rvm/gems/ruby-2.4.1@experiments/gems/maker-0.1.0/lib/maker
➜ maker ls
version.rb
每当我想将新文件添加为 gem 的一部分并希望它在 irb 之外工作时,我该如何解决这个问题。 我是否在某些与 gem 相关的开发方面做错了?请原谅我的无知,我对创建宝石比较陌生。 我应该如何正确地从源代码进行 gem 相关的开发?
另外,我可能会遗漏一些东西,但是当我尝试将 Bundler.require(:default, :development) 添加到 maker.gemspec(如 guide to create the gem 中所建议的那样)时
lib = File.expand_path("../lib", __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "maker/version"
Bundler.require(:default, :development)
我收到如下错误:
[!] There was an error parsing `Gemfile`: - [!] There was an error while loading `maker.gemspec`: - [!] There was an error parsing `Gemfile`: - [!] There was an error while loading `maker.gemspec`: - [!] There was an error parsing `Gemfile`:
我不确定我会在这里遗漏什么。任何关于我需要做什么才能修复的建议都会非常有帮助。
谢谢。
【问题讨论】:
-
你还没有打包
user.rb,我什至在repo中都没有看到它,所以这是哪里来的?您确定您已签入并推送您的更改吗? -
@tadman 感谢您的帮助。
user.rb在 PR 中(如问题中所述)-github.com/boddhisattva/maker/pull/1/files。每次对 gem 进行更改时,我究竟如何打包它?另外,最新打包的 gem 如何进入适当的 gemset 目录(/Users/mohnishgj/.rvm/gems/ruby-2.4.1@experiments/gems/maker)?