| Class | Class |
| In: |
lib/more/facets/module/class_extend.rb
lib/more/facets/preinitialize.rb |
| Parent: | Object |
| new | -> | postinitialize_new |
For Class, class_extend is the same as class_eval. The alternative is to "undef_method :class_extend", but this seems uneccessarily limited.
# File lib/more/facets/module/class_extend.rb, line 118
118: def class_extend(&blk)
119: class_eval(&blk)
120: end
# File lib/more/facets/preinitialize.rb, line 90
90: def new(*args, &blk)
91: o = allocate
92:
93: #if respond_to?(:default_instance_variables)
94: # default_instance_variables.each{|k,v| o.instance_variable_set( "@#{k.to_s.gsub(/\W$/,'')}",v )}
95: #end
96:
97: a = ancestors
98: until a.empty?
99: m = a.pop
100: #if m.private_instance_methods.include?('preinitialize') or m.public_instance_methods.include?('preinitialize')
101: if m.method_defined?('preinitialize') or m.private_method_defined?('preinitialize')
102: im = instance_method('preinitialize')
103: im.arity == 0 ? im.bind(o).call : im.bind(o).call(*args, &blk)
104: end
105: end
106:
107: o.__send__(:initialize, *args, &blk) if o.object_class.private_method_defined?(:initialize)
108:
109: o
110: end