Sha256: 469f5153156b53bcfa916ca0e5143819be9586f56a033c986df36dbc89b0baf0
Contents?: true
Size: 868 Bytes
Versions: 9
Compression:
Stored size: 868 Bytes
Contents
require 'dependency_injection/container' c = DependencyInjection::Container.new c.add_parameter('mailer.transport', 'sendmail') class Mailer attr_accessor :transport def send_mail(message) puts "mail sent via #{transport}: #{message}" end end # 1 - Simple global parameter c.register('mailer', 'Mailer').add_method_call('transport=', '%mailer.transport%') c.get('mailer').send_mail('Hello World') # => mail sent via send_mail: Hello World # 2 - Complex global parameter class NewsletterManager def initialize(mailer) @mailer = mailer end def send_mail(message) puts 'newsletter' @mailer.send_mail(message) end end c.add_parameter('my.mailer', '@mailer') c.register('newsletter', 'NewsletterManager').add_argument('%my.mailer%') c.get('newsletter').send_mail('Hello World') # => newsletter # mail sent via send_mail: Hello World
Version data entries
9 entries across 9 versions & 1 rubygems