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