Pregunta

Estoy usando la gema Rails SimpleForm, pero creo que mi pregunta puede ser aplicable a cualquier joya.

https://github.com/plataformatec/simple_form

Tiene un montón de grandes características y personalización, pero estoy buscando ir un poco más lejos. Por ejemplo, realmente desearía que el marcado generado no tenía clases predeterminadas insertadas en él, pero todavía me gustaría la posibilidad de insertar mi propio manual. Me encontré que podría eliminar algunas de las clases comentando las líneas en los archivos de la gema. Sin embargo, esto está fuera de mi proyecto-- me gustaría una solución DRY que se quedará con mi proyecto cuando despliego a la producción, de preferencia sin tener que empacar todas mis joyas.

Me imagino que esto es una situación común que podría aplicarse a cualquier joya, y que debe ser capaz de anular cualquier joya total o parcialmente, probablemente mediante la adición de los expedientes de investigación en mi proyecto que pueden ser sobre la gema ... pero no estoy seguro cómo.

Cualquier ayuda sería muy apreciada! Gracias.

¿Fue útil?

Solución

¿Está hablando de mono parches ? Digamos que su joya tiene una clase en un archivo

# simple_form_gem/lib/some_file.rb
class A
  def some_method
    puts 'A'
  end
end

Si desea cambiar la salida de #some_method entonces se puede crear un fichero de inicialización y hacer

# config/initializers/my_monkey_patch_for_simple_form_gem.rb
class A
  def some_method
    puts 'duck punching'
  end
end

Su parche mono sólo afectará a A # some_method, y no otros métodos en A. Sólo asegúrese de que la salida de su parche mono no se romperá algo más en la gema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top