Глядя на ваше обновление, простая причина, по которой оно не работает, заключается в следующем: вы используете MyExceptions до того, как оно будет определено.
Исправлена версия вашего файла - повторное открытие класса библиотеки:
require 'thelib'
module MyExceptions
class SomethingBadHappenedTheLibarayDesignerDidntConsider < StandardError; end
end
LibraryClass.class_eval do
include MyExceptions
end
Этот трюк с оценкой класса, возможно, является более безопасным способом повторного открытия класса, чем просто class LibraryClass
снова: он предупредит вас, если вы пропустили имя класса.
Кстати: я действительно не понимаю, как вы планируете использовать MyException тогда ... это, вероятно, означало бы еще несколько обезьянок, исправляющих и / или упаковывающих части библиотеки.
ОБНОВЛЕНИЕ: вышеизложенное предполагает, что у вас есть thelib.rb
в том же каталоге, по крайней мере со следующим содержимым:
class LibraryClass
end