пытаюсь потребовать active_support в драгоценном камне

У меня есть рубиновый драгоценный камень, и я хочу использовать метод Hash.from_xml в драгоценном камне, включенном в модуль rails active_support. У меня есть следующий код в моем gemspec:

gem.add_dependency 'active_support', '~> 3.0.0'

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

Любые предложения о том, что я делаю неправильно или как отлаживать? Спасибо!


person BC00    schedule 11.09.2013    source источник
comment
Попробуйте использовать его с require 'active_support/all'. Или, если вы хотите использовать только хеш-методы, используйте require 'active_support/core_ext/hash'.   -  person Yevgeniy Anfilofyev    schedule 11.09.2013
comment
ОШИБКА: при выполнении gem... (Gem::DependencyError) Невозможно разрешить зависимости: sports_data_api требует active_support/all (~› 3.0.0), active_support/all (~› 3.0.0)   -  person BC00    schedule 11.09.2013


Ответы (1)


Вам нужно require нужные вам методы из ActiveSupport; они не добавляются по умолчанию.

Как упомянул Евгений в комментарии, способ сделать это - require 'active_support/all', если вам нужно все - или если, например, вам нужны только расширения Hash, используйте require 'active_support/core_ext/hash'. Обратите внимание, что это обычно не входит в спецификацию драгоценных камней, а скорее в любой файл, который ваш драгоценный камень использует для настройки.

Возможно, даже лучше было бы require нужных ActiveSupport файлов в нужных файлах, но это дело вкуса.

person Jakob S    schedule 11.09.2013
comment
хорошо, это работает, спасибо. Почему это не работает, когда я помещаю его в gemspec, как указано выше? что происходит по-другому, когда я требую его в файле, а не в gemspec? Спасибо за помощь! - person BC00; 11.09.2013
comment
Ваша спецификация драгоценных камней ссылается на драгоценные камни. Драгоценный камень называется active_support. require ссылается на файлы, возможно, из драгоценных камней. Хотя, возможно, вы смогли сделать gem "active_support", :require => "active_support/all". - person Jakob S; 11.09.2013