module Preinitializable::Meta
Public Instance Methods
new(*args, &blk)
click to toggle source
# File lib/mixers/preinitialize.rb, line 72 def new(*args, &blk) o = allocate #if respond_to?(:default_instance_variables) # default_instance_variables.each{|k,v| o.instance_variable_set( "@#{k.to_s.gsub(/\W$/,'')}",v )} #end a = ancestors until a.empty? m = a.pop if m.private_instance_methods(false).include?('preinitialize') or m.protected_instance_methods(false).include?('preinitialize') or m.public_instance_methods(false).include?('preinitialize') im = instance_method('preinitialize') im.arity == 0 ? im.bind(o).call : im.bind(o).call(*args, &blk) end end o.__send__(:initialize, *args, &blk) if o.class.private_method_defined?(:initialize) o end