Skip to content

Instantly share code, notes, and snippets.

@jasongorman
Created March 23, 2019 13:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasongorman/bc4e834d0200601e56ae75588fe80ce2 to your computer and use it in GitHub Desktop.
Save jasongorman/bc4e834d0200601e56ae75588fe80ce2 to your computer and use it in GitHub Desktop.
class ResponseWriter
def write(customer, serialize, writer)
writer.write(serialize.call(customer))
end
end
customer = Customer.new("Mr", "Jason", "Gorman")
writer = ResponseWriter.new
writer.write(customer, lambda {|c| HtmlSerializer.new().serialize(c)}, ConsoleWriter.new)
writer.write(customer, lambda {|c| XmlSerializer.new().serialize(c)}, LogFileWriter.new("C:\test\testlog.txt"))
writer.write(customer, lambda {|c| StringSerializer.new().serialize(c)}, NoSqlWriter.new("mongodb", "localhost", "admin", "password123"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment