测试一个ruby宝石二进制

我正在开发一个具有二进制文件的ruby宝石.

我正在尝试开发二进制文件,但是我担心它没有找到我的要求,因为宝石没有安装作为一个宝石有没有一种方式来测试二进制,而不是将其作为宝石包装?

#!/usr/bin/env ruby

require "middleman_ember_scaffold/load_paths"

# Start the CLI
MiddlemanEmberScaffold::Cli::Base.start

坐在一个名为mse和ive的文件中,将我的bin文件夹的gem添加到路径

.
└── middleman_ember_scaffold
    ├── Gemfile
    ├── LICENSE.txt
    ├── README.md
    ├── Rakefile
    ├── bin
    │ └── mes
    ├── lib
    │ ├── middleman_ember_scaffold
    │ │ ├── cli.rb
    │ │ ├── load_paths.rb
    │ │ └── version.rb
    │ └── middleman_ember_scaffold.rb
    └── middleman_ember_scaffold.gemspec

4 directories,10 files

当我跑步我得到

/Users/justin/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- middleman_ember_scaffold/load_paths (LoadError)
    from /Users/justin/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/justin/middleman-generator/middleman_ember_scaffold/bin/mes:7:in `<main>'

我希望能够在每次我改变的时候重新打包,而不必再重新打包.

解决方法

使用RUBYLIB环境变量

您所面临的问题是,您的源目录没有得到一些应用于安装的gem的魔术,因此在$LOAD_PATH中没有您的lib目录.虽然还有其他方法来处理这个问题,但是对于测试,我建议您只需将lib目录添加到RUBYLIB环境变量中即可.例如:

RUBYLIB="/path/to/middleman_ember_scaffold/lib:$RUBYLIB"
export RUBYLIB
bin/mes

应该适用于任何兼容Bourne的外壳.如果您正在运行Bash,并且RUBYLIB中没有其他内容,您甚至可以将调用缩短到:

RUBYLIB="/path/to/middleman_ember_scaffold/lib" bin/mes

无论哪种方式,一旦Ruby知道应该添加到$LOAD_PATH的目录,一切都应该正常工作.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...