Проверить двоичный код рубинового драгоценного камня
Я разрабатываю рубиновый камень, который будет иметь двоичный файл.
Я пытаюсь разработать двоичный файл, но я беспокоюсь о том, что он не находит мои запросы, потому что камень не установлен как драгоценный камень, есть ли способ проверить двоичный файл, не упаковывая его в качестве драгоценного камня?
#!/usr/bin/env ruby
require "middleman_ember_scaffold/load_paths"
# Start the CLI
MiddlemanEmberScaffold::Cli::Base.start
находится в файле с именем mse, а iive добавляет мою папку 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
когда я запускаю mes, я получаю
/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>'
Я хотел бы иметь возможность запускать и разрабатывать mes без повторной упаковки каждый раз, когда я вношу изменения.
Ответы
Ответ 1
Использовать переменную среды RUBYLIB
Проблема, с которой вы сталкиваетесь, заключается в том, что ваш исходный каталог не получает некоторую магию, применяемую к установленным драгоценным камням, и поэтому не имеет вашего каталога lib в $LOAD_PATH. Хотя есть другие способы справиться с этим, для тестирования я бы рекомендовал просто добавить ваш каталог 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, все должно работать нормально.
Ответ 2
Вероятно, "лучшим" способом было бы сделать следующее:
$ ruby -I./lib bin/mes
Он делает то же самое, что и изменение пути загрузки, но он делает это только для команды, которую вы выполняете.