# File lib/benelux/packer.rb, line 24
24:     def initialize(k,m,aliaz,&blk)
25:       Benelux.ld "%20s: %s#%s" % [self.class, k, m]
26:       if Benelux.packed_method? k, m
27:         raise SelectableError, "Already defined (#{k} #{m})"
28:       end
29:       @klass, @meth, @aliaz, @blk = k, m, aliaz, blk
30:       @aliaz ||= meth
31:       @klass.extend Attic  unless @klass.kind_of?(Attic)
32:       unless @klass.kind_of?(Benelux)
33:         @klass.attic :timeline
34:         @klass.send :include, Benelux
35:       end
36:       ## NOTE: This is commented out so we can include  
37:       ## Benelux definitions before all classes are loaded. 
38:       ##unless obj.respond_to? meth
39:       ##  raise NoMethodError, "undefined method `#{meth}' for #{obj}:Class"
40:       ##end
41:       thread_id, call_id = Thread.current.object_id.abs, @klass.object_id.abs
42:       @methorig = methorig = "__benelux_#{@meth}_#{thread_id}_#{call_id}""__benelux_#{@meth}_#{thread_id}_#{call_id}"
43:       Benelux.ld "%20s: %s" % ['Alias', @methorig] 
44:       
45:       @klass.module_eval do
46:         Benelux.ld [:def, self, m, 
47:           MethodPacker.method_defined?(self, m),
48:           MethodPacker.class_method_defined?(self, m)].inspect
49:         if MethodPacker.method_defined?(self, m)
50:           alias_method methorig, m  # Can't use the instance variables
51:         elsif MethodPacker.class_method_defined?(self, m)
52:           eval "class << self; alias #{methorig} #{m}; end"
53:         else
54:           raise BeneluxError, "No such method: #{self}.#{m}"
55:         end
56:       end
57:       install_method  # see generate_packed_method
58:       self.add_tags :class => @klass.to_s.to_sym, 
59:                     :meth  => @meth.to_sym,
60:                     :kind  => self.class.to_s.to_sym
61: 
62:       Benelux.packed_methods[@klass] ||= {}
63:       Benelux.packed_methods[@klass][@meth] = self
64:       Benelux.packed_methods[:all] ||= []
65:       Benelux.packed_methods[:all] << self
66:       
67:     end