[svn:parrot] r43570 - branches/one_make/tools/build

jkeenan at svn.parrot.org jkeenan at svn.parrot.org
Sat Jan 23 18:01:34 UTC 2010


Author: jkeenan
Date: Sat Jan 23 18:01:31 2010
New Revision: 43570
URL: https://trac.parrot.org/parrot/changeset/43570

Log:
Encapsulate composition of output text in generate_text(); document that new sub.

Modified:
   branches/one_make/tools/build/h2inc.pl

Modified: branches/one_make/tools/build/h2inc.pl
==============================================================================
--- branches/one_make/tools/build/h2inc.pl	Sat Jan 23 17:19:07 2010	(r43569)
+++ branches/one_make/tools/build/h2inc.pl	Sat Jan 23 18:01:31 2010	(r43570)
@@ -23,15 +23,8 @@
 die "invalid output file: '$out_file' for input '$in_file'" unless $directive;
 
 my @defs = perform_directive($directive);
-my $target  = $directive->{file};
-my $generated_text;
-if ($target =~ /\.pm$/) {
-    $generated_text = join "\n", const_to_perl(@defs);
-    $generated_text .= "\n1;";
-}
-else {
-    $generated_text = join "\n", const_to_parrot(@defs);
-}
+
+my $generated_text = generate_text($directive, \@defs);
 
 print_generated_file( {
     in      => $in_file,
@@ -291,6 +284,64 @@
     transform_name( sub { $prefix . $_[0] }, @_ );
 }
 
+=head2 C<generate_text()>
+
+=over 4
+
+=item * Argument
+
+    $generated_text = generate_text($directive, \@defs);
+
+List of two arguments: Directive hashref; reference to array of definitions.
+
+=item * Return Value
+
+String holding main text to be printed to new file.
+
+=back
+
+=cut
+
+sub generate_text {
+    my ($directive, $defs_ref) = @_;
+
+    my $target  = $directive->{file};
+    my $generated_text;
+    if ($target =~ /\.pm$/) {
+        $generated_text = join "\n", const_to_perl(@{ $defs_ref });
+        $generated_text .= "\n1;";
+    }
+    else {
+        $generated_text = join "\n", const_to_parrot(@{ $defs_ref });
+    }
+    return $generated_text;
+}
+
+=head2 C<print_generated_file()>
+
+=over 4
+
+=item * Argument
+
+    print_generated_file( {
+        in      => $in_file,
+        out     => $out_file,
+        script  => $0,
+        gen     => $generated_text,
+    } );
+
+Hash reference.  Elements pertain to file being read, file being created,
+calling program (typically, F<tools/build/h2inc.pl>) and string of text to be
+printed to file.
+
+=item * Return Value
+
+Implicitly returns true upon success.
+
+=back
+
+=cut
+
 sub print_generated_file {
     my $args = shift;
     open my $out_fh, '>', $args->{out} or die "Can't open $args->{out}: $!\n";


More information about the parrot-commits mailing list