class DuckEnforcer

DuckEnforcer base class

Public Class Methods

check_conformity!(klass) click to toggle source
# File lib/duck_enforcer.rb, line 14
def self.check_conformity!(klass)
  @methods.each do |method|
    unless klass.instance_methods.include? method
      raise(NotImplementedError, "Missing method #{method} in class #{klass}")
    end
  end
end
implement(*args) click to toggle source
# File lib/duck_enforcer.rb, line 9
def self.implement(*args)
  def_delegators :@obj, *args
  Array(args).each { |method| (@methods ||= []) << method }
end
new(obj) click to toggle source
# File lib/duck_enforcer.rb, line 22
def initialize(obj)
  self.class.check_conformity! obj.class
  @obj = obj
end