Parent

Files

Class/Module Index [+]

Quicksearch

Tins::Deflect::DeflectorCollection

This class implements a collection of deflectors, to make them available by emulating Ruby’s message dispatch.

Public Class Methods

new() click to toggle source
# File lib/tins/dslkit.rb, line 366
def initialize
  @classes = {}
end

Public Instance Methods

add(klass, id, deflector) click to toggle source

Add a new deflector deflector for class klass and method name id, and return self.

# File lib/tins/dslkit.rb, line 373
def add(klass, id, deflector)
  k = @classes[klass]
  k = @classes[klass] = {} unless k
  k[id.to_s] = deflector
  self
end
delete(klass, id) click to toggle source

Delete the deflecotor class klass and method name id. Returns the deflector if any was found, otherwise returns true.

# File lib/tins/dslkit.rb, line 388
def delete(klass, id)
  if k = @classes[klass]
    d = k.delete id.to_s
    @classes.delete klass if k.empty?
    d
  end
end
find(klass, id) click to toggle source

Try to find a deflector for class klass and method id and return it. If none was found, return nil instead.

# File lib/tins/dslkit.rb, line 398
def find(klass, id)
  klass.ancestors.find do |k|
    if d = @classes[k] and d = d[id.to_s]
      return d
    end
  end
end
member?(klass, id) click to toggle source

Return true if messages are deflected for class klass and method name id, otherwise return false.

# File lib/tins/dslkit.rb, line 382
def member?(klass, id)
  !!(k = @classes[klass] and k.key?(id.to_s))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.