Я хотел бы знать, где положить код исправления обезьяны, как показано ниже в моем приложении rails, который откроет существующие классы и добавит или переопределит новые функции. Я хочу, чтобы этот код был доступен для всех экземпляров как можно скорее. Является ли автозагрузка правильным способом для этого и помещением вызова в environment.rb?Где разместить расширения ruby object
class Class
def attr_initializer(*attributes)
attr_reader *attributes
class_eval <<-RUBY
def initialize(#{attributes.join(', ')})
#{attributes.map{ |attribute| "@#{attribute}" }.join(', ')} = #{attributes.join(', ')}
end
RUBY
end
end
Спасибо, а как насчет при запуске тестов, нужно ли добавить код в test_helper для инициализации этого кода? – dagda1
Эти инициализаторы будут запускаться при загрузке тестового набора. Файлы в config/initialiers запускаются для всех сред –