# Matz DI -- Block Injection # # Usage: # # def start_app # c = DI::Container.new # c.define(:blog) {|c| Blog.new(c.input, c.display)} # c.define(:input) {Input.new} # c.define(:dbms){DBMS.new} # c.define(:markup){Markup.new} # c.define(:plugin){|c| # p = Plugin.new # p.dbms = c.dbms # } # c.define(:display) {|c| # Display.new(c.dbms, c.markup, c.plugin) # } # blog = c.instance(:blog) # end module