2016-01-14 2 views
1

Я построил небольшое приложение Cli в рубине (первое приложение ruby), но я не могу его запустить.Борьба за запуск моего приложения ruby ​​cli

Я начал проект с bundle gem. Я тестировал его в папке моих приложений, запустив bundle exec bin/konstruct, и все работает нормально.

Я хочу установить его локально и протестировать его перед отправкой, и поэтому я запустил bundle exec rake install после обновления всей информации в моем файле gemspec. Это дало преуспевающий выход:

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/папку, хотя. Я не уверен, где/как эта папка должна быть сгенерирована. Я запустил bundle и bundle 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"). Reject {| f | f.match (% r {^ (test | spec | features) /})} spec.bindir = "bin" spec.executables << 'konstruct' spec.require_paths << 'lib'' Но это все еще не работает. – TraaidMark

+0

Я сделал то, что вы предложили, но это полностью разрушает приложение. Когда я добавляю фиктивную папку exe с моим скриптом в нее, она по-прежнему дает ту же ошибку. – TraaidMark

+0

@TraaidMark Я клонировал ваше репо, 'cd''d в репо, запускал' bundle install', тогда я запускал 'bundle exec rake install', и я попытался выполнить команду' konstruct'. Он успешно выполнил (хотя и дал ошибку, указав 'invalid command.Используйте -help для получения дополнительной информации, вероятно, потому, что вы еще не добавили какие-либо параметры). Никаких предупреждений о недостатке Gemfiles. Какую ОС вы используете? – Simpleton

0

Оказывается, я первый класс идиот. Некоторое время назад я добавил Konstruct в мой файл .path, который, очевидно, теперь перекрывал правильную команду konstruct. В то время я не работал, поэтому я просто забыл об этом.

Так что ответ на этот вопрос: он не сломан. ОП - идиот. : -/

Смежные вопросы