Sha256: 0983845e6ccf2667d1c9b8c6661646fe01134863e4fcd0bee33c2f4443f00119

Contents?: true

Size: 742 Bytes

Versions: 1

Compression:

Stored size: 742 Bytes

Contents

module DuckPuncher
  # @note When updating this file please update comment regarding this module in duck_puncher.rb
  module Registration
    def register(target, *mods)
      options = mods.last.is_a?(Hash) ? mods.pop : {}
      target = DuckPuncher.lookup_constant target
      Ducks.list[target] = [] unless Ducks.list.key?(target)
      Array(mods).each do |mod|
        duck = Duck.new target, mod, options
        Ducks.list[target] << duck
        decorators[target] = build_decorator_class(duck, *Ducks[target])
      end
      @cached_decorators = nil
    end

    def deregister(*classes)
      classes.each &Ducks.list.method(:delete)
      classes.each &decorators.method(:delete)
      @cached_decorators = nil
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
duck_puncher-4.2.0 lib/duck_puncher/registration.rb