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