Skip to content

Instantly share code, notes, and snippets.

@mattr-
Created February 2, 2015 15:57
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 mattr-/53c3a8b19e531ba8344e to your computer and use it in GitHub Desktop.
Save mattr-/53c3a8b19e531ba8344e to your computer and use it in GitHub Desktop.
class TransactionHistory
def transactions
adapters = [ChicagoTransactionAdapter, DallasTransactionAdapter]
transactions = []
adapters.each do |adapter|
transactions += adapter.fetch_transactions
end
end
end
class ChicagoTransactionAdapter; end
class DallasTransactionAdapter; end
class TransactionHistory
def transactions
transactions = []
TransactionAdapter.adapters.each do |adapter|
transactions += adapter.fetch_transactions
end
end
end
class ChicagoTransactionAdapter
include TransactionAdapter
end
class DallasTransactionAdapter
include TransactionAdapter
end
module TransactionAdapter
@@adapters = []
def included(other)
@@adapters << other
end
def self.adapters
@@adapters
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment