2017-12-21 7 views
1

Ich baue ein CLI-Juwel mit Ruby mit Thor. Ich renne , die rake build dann die Aufgabe ausführt, den Edelstein lokal zu installieren. Wenn ich jedoch versuche, es in der Befehlszeile auszuführen, kann es den Befehl nicht finden. Der Edelstein heißt smokestack, also theoretisch sollte in der Lage sein, es im Terminal zu laufen, sobald es installiert ist.Manuelles Testen eines Ruby CLI

Struktur:

├── CODE_OF_CONDUCT.md 
├── Gemfile 
├── Gemfile.lock 
├── LICENSE.txt 
├── README.md 
├── Rakefile 
├── bin 
│   ├── console 
│   ├── setup 
│   └── smokestack 
├── lib 
│   ├── smokestack 
│   │   ├── build.rb 
│   │   ├── cli.rb 
│   │   └── version.rb 
│   └── smokestack.rb 
├── pkg 
│   └── smokestack-0.1.0.gem 
├── smokestack.gemspec 
└── test 
    ├── build_test.rb 
    ├── smokestack_test.rb 
    └── test_helper.rb 

ist/Schlot:

#!/usr/bin/env ruby -wU 

require 'smokestack' 

Smokestack::Cli.start(ARGV) 

Sie können in dem Baum finden Sie in die pkg Ordner aus, wenn ich rake install lief. Hier ist das Ergebnis, wenn ich laufe, dass:

smokestack 0.1.0 built to pkg/smokestack-0.1.0.gem. 
smokestack (0.1.0) installed. 

ich smokestack in meinem Terminal dann laufen und die Fehler: zsh: command not found: smokestack

Ich habe auch versucht gem install --local ~/path/to/gem/pkg/gem.gem Ergebnis:

Successfully installed smokestack-0.1.0 
Parsing documentation for smokestack-0.1.0 
Done installing documentation for smokestack after 0 seconds 
1 gem installed 

Diese führt zu demselben 'Befehl nicht gefunden Fehler'.

Frage Wie soll ich dieses CLI lokal ausführen, um es während der Entwicklung zu testen?

Es interagiert ideal mit dem aktuellen Projekt, in dem es ist, so nur bundle exec bin/smokestack innerhalb des eigenen Verzeichnisses führt nicht zu den Ergebnissen, die ich richtig brauche. Es sollte doch ein System-CLI sein oder?

Here is the repo für zusätzlichen Kontext bei Bedarf.

Antwort

1

Da liefen ein paar Dinge schief. Zuerst wurde das ausführbare Paket aus /bin in /exe verschoben. Sehen Sie [diesen Artikel (http://bundler.io/blog/2015/03/20/moving-bins-to-exe.html) als Referenz.

Ich bewegte zu exe/smokestack.

Sie müssen auch sicherstellen, und stellen Sie Ihre Dateien, denn die .gemspec Dateien erhalten die Edelstein-Dateien-Liste, indem Sie git ls-files ausführen. Nun, da alles getan ist, scheint alles zu funktionieren.

Verwandte Themen