sub for modifying metadata
Graham Knop [Mon, 16 May 2016 21:41:58 +0000 (17:41 -0400)]
lib/Distar.pm

index 323b181..50943b7 100644 (file)
@@ -70,6 +70,21 @@ sub write_manifest_skip {
   close $skip;
 }
 
+sub _clone {
+  map {
+    if (ref eq 'HASH') {
+      my $struct = $_;
+      { map +($_ => _clone($struct->{$_})), keys %$struct };
+    }
+    elsif (ref eq 'ARRAY') {
+      [ _clone(@$_) ];
+    }
+    else {
+      $_;
+    }
+  } @_;
+}
+
 {
   package Distar::MM;
   our @ISA = @MM::ISA;
@@ -98,6 +113,16 @@ sub write_manifest_skip {
     });
   }
 
+  sub metafile_data {
+    my $self = shift;
+    my $meta = { Distar::_clone($self->SUPER::metafile_data(@_) };
+
+    my $spec_ver = ($meta->{'meta-spec'} && $meta->{'meta-spec'}{version} || 1.4;
+    my $resources = $meta->{resources} ||= {};
+
+    %$meta;
+  }
+
   sub flush {
     my $self = shift;
     `git ls-files --error-unmatch MANIFEST.SKIP 2>&1`;