努力运行我的ruby cli app

时间:2016-01-14 11:13:52

标签: ruby command-line-interface

我在ruby(第一个ruby应用程序)中构建了一个小型Cli应用程序,但我无法实际运行它。

我用bundle gem启动了该项目。我一直在运行bundle exec bin/konstruct在我的apps文件夹中测试它,一切正常。

我想在本地安装它并在提交之前对其进行测试,因此我在更新gemspec文件中的所有信息后运行bundle exec rake install。它给出了成功的输出:

konstruct 0.1.1 built to pkg/konstruct-0.1.1.gem.
konstruct (0.1.1) installed.

但是当我通过输入$ konstruct来运行应用时,它会给我一个Could not locate Gemfile or .bundle/ directory错误,除非我从应用的根文件夹中运行它。

我曾尝试使用Google,但我无法将结果归结为与我相同的问题。即使在开发过程中我也遇到过这个问题(How can I test my Ruby CLI app while still in development?

我有一个Gemfile,它包含:

source 'https://rubygems.org'

# Specify your gem's dependencies in konstruct.gemspec
gemspec

我没有.bundle /文件夹。我不确定该文件夹的生成位置和方式。我现在多次运行bundlebundle install

我有一个konstruct.gemspec文件,其中包含:https://github.com/konstruct/konstruct.cli/blob/master/konstruct.gemspec

该文件的大部分内容都是生成的。我只是把它填满了。

对不起,如果这是一个愚蠢的问题,但我被困了。

2 个答案:

答案 0 :(得分:0)

您的gemspec中有以下行:

./main

我认为这意味着如果您将可执行文件移动到spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } 目录而不是exe目录,它将按预期工作。

http://guides.rubygems.org/specification-reference/#executables

答案 1 :(得分:0)

事实证明我是一流的白痴。前段时间我在我的.path文件中添加了Konstruct,显然它现在覆盖了正确的konstruct命令。那时我做了什么工作,所以我忘了它。

所以这个问题的答案是:它没有被打破。 OP是个白痴。 : - /