Method: #BlankSlate

Defined in:
lib/util/blankslate.rb

#BlankSlate(superclass = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/util/blankslate.rb', line 27

def BlankSlate superclass = nil
  if superclass
    (@blank_slates ||= {})[superclass] ||= Class.new(superclass) do
      instance_methods.sort.each { |m|
        unless m =~ /^__/
          mname = "__#{::BlankSlate::MethodMapping[m.to_s] || m}"
          class_eval "alias :'#{mname}' :'#{m}'" 
          
          undef_method m
        end
      }
    end
  else
    BlankSlate
  end
end