[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