2016-01-14 32 views
1

我在ruby中構建了一個小型Cli應用程序(首次使用Ruby應用程序),但我無法真正運行它。努力運行我的ruby cli應用程序

我以bundle gem開始了該項目。通過運行bundle exec bin/konstruct我一直在我的應用程序文件夾中進行測試,一切正常。

我想在本地安裝並測試它,然後在我更新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

大部分文件是因爲它是生成的。我只是在可能的地方填滿了它。

對不起,如果這是一個愚蠢的問題,但我超級卡住了。

回答

0

您的gemspec以下行:

spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } 

我相信,如果你移動你的可執行文件到exe目錄,而不是一個bin目錄,你希望它會工作,這意味着。

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

+0

請原諒我的無知,但我不太和你在一起。我確實改變了我的gemspec文件,現在有 'spec.files ='git ls-files -z'.split(「\ x0」)。 spec.bindir =「bin」 spec.executables <<'konstruct' spec.require_paths <<'lib'' 但是它仍然沒有工作。 – TraaidMark

+0

我已經完成了你的建議,但這完全打破了應用程序。 當我添加一個虛擬EXE文件夾與我的腳本在它,它仍然給出了相同的錯誤。 – TraaidMark

+0

@TraaidMark我已經克隆了你的repo,'cd''d到repo,運行'bundle install'然後我運行了'bundle exec rake install',並且我試着執行'konstruct'命令。它成功運行(雖然它給出了一個錯誤,說'無效的命令。使用--help獲取更多信息,可能是因爲你還沒有添加任何選項)。沒有關於缺乏Gemfiles的警告。你在使用什麼操作系統? – Simpleton

0

事實證明我是一個一流的白癡。前一段時間,我在我的.path文件中添加了Konstruct,顯然現在正在重寫正確的konstruct命令。那時我做了什麼沒有工作,所以我只是忘了它。

所以這個問題的答案:它沒有壞。 OP是一個白癡。 : -/