lib/duck_puncher.rb in duck_puncher-2.16.0 vs lib/duck_puncher.rb in duck_puncher-3.0.0

- old
+ new

@@ -1,8 +1,7 @@ require 'pathname' require 'fileutils' -require 'delegate' require 'logger' require 'usable' require 'duck_puncher/version' module DuckPuncher @@ -12,27 +11,11 @@ autoload :Ducks, 'duck_puncher/ducks' class << self attr_accessor :log - def delegations - @delegations ||= {} - end - def classes @classes ||= {} - end - - # @param [Symbol] duck_name - # @param [Class] obj The object being punched - def delegate_class(duck_name, obj = nil) - delegations["#{obj.class}#{duck_name}"] ||= begin - duck_const = duck_name.to_s - if duck_const[/^[A-Z]/].nil? - duck_const = duck_const.split('_').map(&:capitalize).join - end - const_set "#{duck_const}DuckDelegated", Ducks[duck_name.to_sym].dup.delegated(obj) - end end def duck_class(name) classes[name] ||= const_set "#{name}Duck", Ducks[name].dup.classify end