Вопрос

Я использую Rails Gem SimpleForm, но я думаю, что мой вопрос может быть применим к любому драгоценному камню.

https://github.com/plataformatec/simple_form

У этого есть много отличных функций и настройки, но я хочу пойти немного дальше. Например, я действительно хотел бы, чтобы в сгенерированной наценке не было вставлено классы по умолчанию, но я все равно хотел бы вставить свою собственную вручную. Я обнаружил, что могу удалить некоторые классы, комментируя строки в файлах GEM. Однако это за пределами моего проекта- мне бы хотелось сухое решение, которое останется в моем проекте, когда я развернулся в производстве, предпочтительно без необходимости упаковывать все свои драгоценные камни.

Я полагаю, что это общая ситуация, которая может применяться к любому драгоценному камню, и я должен быть в состоянии полностью или частично переопределить любой драгоценный камень, вероятно, добавив таможенные файлы в мой проект, которые переопределяют драгоценный камень ... но я не уверен, как.

Любая помощь будет оценена! Спасибо.

Это было полезно?

Решение

Ты о Обезьяна исправление? Скажем, у вашего драгоценного камня есть класс в файле

# 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

Ваш патч обезьян повлияет только на#some_method, а не на другие методы в A. Просто убедитесь, что выход вашего обезьянного патча не сломает что -то еще в драгоценном камне.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top