Здесь уже есть огромный объём материалов. Просто посмотрите на все десятки существующих плагинов.
Вот пример переопределения системы onebox:
Обратите внимание, что патчинг может быть очень точным и изобретательным (этот плагин не особенно изобретателен, но это отчасти связано со структурой основного кода, которая делает переопределения неизбежно громоздкими). Искусство заключается в том, чтобы сделать как можно меньше для достижения желаемого эффекта: если вы предлагаете переопределять целые файлы, возможно, стоит пересмотреть свой общий подход.
И, как уже отмечал Ричард, вы почти никогда (по крайней мере в Ruby on Rails) не переопределяете целые файлы. Вам нужно думать о методах.