【问题标题】:How to add and package the new functionality when developing a new gem开发新gem时如何添加和打包新功能
【发布时间】: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)?

标签: ruby rubygems rvm bundler


【解决方案1】:

这个问题的答案是使用本文中提到的bundle console - http://wsmoak.net/2016/07/10/ruby-gem-dev-irb.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多