Проверить двоичный код рубинового драгоценного камня

Я разрабатываю рубиновый камень, который будет иметь двоичный файл.

Я пытаюсь разработать двоичный файл, но я беспокоюсь о том, что он не находит мои запросы, потому что камень не установлен как драгоценный камень, есть ли способ проверить двоичный файл, не упаковывая его в качестве драгоценного камня?

#!/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

Он делает то же самое, что и изменение пути загрузки, но он делает это только для команды, которую вы выполняете.