Ruby gem Путь к файлу - PullRequest
       1

Ruby gem Путь к файлу

0 голосов
/ 16 апреля 2011

Так что я вроде как дурачок, я использую примеры изнутри гема, гем AMQP для рубина здесь, на github , я вытащил репозиторий и в одном из примеров файлы ( этот ) он имеет несколько строк, подобных этой:

$LOAD_PATH.unshift File.expand_path("../../../../lib", __FILE__)

require "amqp"

# [...]

Путь загрузки указывает на этот каталог . Так что мой вопрос в основном таков: когда у меня установлен gem и я пытаюсь запустить файл, используя просто ruby ​​или даже в IRB, он не будет работать вне каталога примеров gems при обращении к этим файлам lib ... почему? даже когда я require "amqp"?

Любые идеи будут с благодарностью.


Обновление Мне интересно, есть ли конфликтующие два гема или библиотеки, например, на которые ссылается библиотека:

https://github.com/ruby-amqp/amqp

Я просто так запутался, потому что не знаю, совпадает ли это с самоцветом "amqp", как я могу сказать, .gemspec и Gemfile мне не понятны, и кажется, иметь другие вещи, такие как:

custom_gem "amq-client",   :git => "git://github.com/ruby-amqp/amq-client.git",   :branch => "master"
custom_gem "amq-protocol", :git => "git://github.com/ruby-amqp/amq-protocol.git", :branch => "master"

А в .gemspec есть:

s.add_dependency "amq-client"

Любая помощь, помогающая мне понять, это было бы так здорово!

1 Ответ

0 голосов
/ 16 апреля 2011

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

Если у вас установлен гем, и у вас загружен RubyGems, вы можете просто сказать require "amqp", и это будет необходимо.

Обратите внимание, что вам нужно загрузить RubyGems, чтобы require "amqp" загрузил гем AMQP; вам нужно либо сделать require "rubygems" в начале вашего исходного файла, либо запустить Ruby с -rubygems, либо установить переменную окружения RUBYOPT export RUBYOPT=rubygems. См. руководство RubyGems для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...