class Tins::Deflect::DeflectorCollection
This class implements a collection of deflectors, to make them available by emulating Ruby’s message dispatch.
Public Class Methods
Public Instance Methods
Source
# File lib/tins/dslkit.rb, line 342 def add(klass, id, deflector) k = @classes[klass] k = @classes[klass] = {} unless k k[id.to_s] = deflector self end
Add a new deflector deflector for class klass and method name id, and return self.
Source
# File lib/tins/dslkit.rb, line 357 def delete(klass, id) if k = @classes[klass] d = k.delete id.to_s @classes.delete klass if k.empty? d end end
Delete the deflecotor class klass and method name id. Returns the deflector if any was found, otherwise returns true.
Source
# File lib/tins/dslkit.rb, line 367 def find(klass, id) klass.ancestors.find do |k| if d = @classes[k] and d = d[id.to_s] return d end end end
Try to find a deflector for class klass and method id and return it. If none was found, return nil instead.
Source
# File lib/tins/dslkit.rb, line 351 def member?(klass, id) !!(k = @classes[klass] and k.key?(id.to_s)) end
Return true if messages are deflected for class klass and method name id, otherwise return false.