Skip to content

Instantly share code, notes, and snippets.

@monzou
Created June 12, 2011 12:52
Show Gist options
  • Save monzou/1021513 to your computer and use it in GitHub Desktop.
Save monzou/1021513 to your computer and use it in GitHub Desktop.
decorate w/ Module
class SimpleWriter
def write(text)
puts text
end
end
module TimeStampingWriter
def write(text)
super("#{Time.now}: #{text}")
end
end
module NumberingWriter
attr_reader :line_number
def write(text)
@line_number = 1 unless @line_number
super("#{@line_number}: #{text}")
@line_number += 1
end
end
w = SimpleWriter.new
w.write("Hello")
w.extend(NumberingWriter)
w.extend(TimeStampingWriter)
w.write("Hello")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment