Skip to main content

module_prepend

🧩 Using Module#prepend for Method Overrides​

Module#prepend lets you inject behavior before existing methods are invoked, making it excellent for decorators or logging. Unlike include, prepend places the module higher in the lookup chain. Use it to wrap or modify method behavior transparently.

module Auditor
def save
puts "Auditing before save"
super
end
end

class Record
prepend Auditor

def save
puts "Saving record"
end
end

Record.new.save
# ⇒ Auditing before save
# ⇒ Saving record