module DSLKit::BlankSlate
def self.with(*ids)
*ids. ids can be Symbols, Strings, and Regexps that have to match
Creates an anonymous blank slate class, that only responds to the methods
def self.with(*ids) ids = ids.map { |id| Regexp === id ? id : id.to_s } klass = Class.new klass.instance_eval do instance_methods.each do |m| m = m.to_s undef_method m unless m =~ /^(__|object_id)/ or ids.any? { |i| i === m } end end klass end