class Manacle::Proxy::Template

Public Class Methods

cut(klass) click to toggle source
# File lib/manacle/proxy/template.rb, line 10
def self.cut(klass)
  Class.new do |k|
    include Manacle::Proxy::InstanceMethods

    define_method(:proxied_klass) do
      klass
    end
    private :proxied_klass

    methods = klass.instance_methods.reject {|m| 
      [:inspect, :new, :class].include?(m) 
    }.map {|m| 
      Method::Constrained.new(m) 
    } + 
    Manacle::Constraint::InstanceMethods.instance_methods.map {|m| 
      Method::Unconstrained.new(m) 
    }


    methods.each do |mth|
      mth.bind(self)
    end
  end
end