Merge branch 'master' into blead
gfx [Sat, 24 Oct 2009 04:00:55 +0000 (13:00 +0900)]
1  2 
lib/Mouse/Exporter.pm
lib/Mouse/Object.pm

@@@ -168,32 -161,12 +168,27 @@@ sub do_import 
      $^H              |= _strict_bits;         # strict->import;
      ${^WARNING_BITS}  = $warnings::Bits{all}; # warnings->import;
  
-     if($into eq 'main' && !$spec->{_export_to_main}){
-         warn qq{$package does not export its sugar to the 'main' package.\n};
-         return;
-     }
      if($spec->{INIT_META}){
 +        my $meta;
          foreach my $init_meta(@{$spec->{INIT_META}}){
 -            $into->$init_meta(for_class => $into);
 +            $meta = $into->$init_meta(for_class => $into);
          }
  
 -        # _apply_meta_traits($into); # TODO
 +        if(@traits){
 +            my $type = (split /::/, ref $meta)[-1]; # e.g. "Class" for "My::Meta::Class"
 +            @traits =
 +                map{ ref($_) ? $_ : Mouse::Util::resolve_metaclass_alias($type => $_, trait => 1) }
 +                @traits;
 +
 +            print "[@traits]\n";
 +
 +            not_supported('-traits');
 +            require Mouse::Util::MetaRole;
 +            Mouse::Util::MetaRole::apply_metaclass_roles(
 +                for_class       => $into,
 +                metaclass_roles => \@traits,
 +            );
 +        }
      }
  
      if(@exports){
Simple merge