Parent

Files

DSLKit::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

(Not documented)

# File lib/dslkit/polite.rb, line 409
      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/dslkit/polite.rb, line 416
      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/dslkit/polite.rb, line 431
      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/dslkit/polite.rb, line 441
      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/dslkit/polite.rb, line 425
      def member?(klass, id)
        !!(k = @classes[klass] and k.key?(id.to_s))
      end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.