Sha256: 598e35ca6bf6f3d35415b7699f331c532aa38c4f9a5c3e38f0637df9bdd3b30e
Contents?: true
Size: 809 Bytes
Versions: 2
Compression:
Stored size: 809 Bytes
Contents
require 'dicer/context/description' module Dicer class Context def self.descriptions @descriptions ||= self < Dicer::Context ? self.superclass.descriptions.dup : {} end def self.describe(klass, &block) description = Description.new(klass, &block) klass = description.described_class if descriptions.has_key?(klass) descriptions[klass].merge!(description) else descriptions[klass] = description end end def supply(object, role = nil) description = self.class.descriptions[object.class] delegator = description ? (role.nil? ? description.delegator : description.delegator_for(role)) : nil delegator ? delegator.new(object) : object end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dicer-0.3.0 | lib/dicer/context.rb |
dicer-0.2.0 | lib/dicer/context.rb |