Настройка / переопределение Rails SimpleForm Gem
Я использую гем Rails SimpleForm, но я думаю, что мой вопрос может быть применим к любому гему.
https://github.com/plataformatec/simple_form
В нем много замечательных функций и настроек, но я хочу пойти еще дальше. Например, мне бы очень хотелось, чтобы в сгенерированной разметке не было классов, вставленных по умолчанию, но мне все же хотелось бы иметь возможность вставлять свои собственные вручную. Я обнаружил, что могу удалить некоторые классы, комментируя строки в файлах gem. Однако это выходит за рамки моего проекта - я бы хотел СУХОЕ решение, которое останется в моем проекте при развертывании в производство, желательно без упаковки всех моих драгоценных камней.
Я полагаю, что это обычная ситуация, которая может применяться к любому драгоценному камню, и я должен иметь возможность полностью или частично переопределить любой драгоценный камень, добавив в свой проект файлы таможни, которые переопределяют драгоценный камень... но я не уверен, как это сделать.
Любая помощь будет оценена! Благодарю.
1 ответ
Вы говорите об исправлении обезьян? Скажем, у вашего драгоценного камня есть класс в файле
# simple_form_gem/lib/some_file.rb
class A
def some_method
puts 'A'
end
end
Если вы хотите изменить вывод #some_method, вы можете создать файл инициализатора и сделать
# config/initializers/my_monkey_patch_for_simple_form_gem.rb
class A
def some_method
puts 'duck punching'
end
end
Ваш патч обезьяны повлияет только на A#some_method, а не на другие методы в A. Просто убедитесь, что вывод вашего патча обезьяны не сломает что-то еще в геме.