Mercurial > repos > cpt > cpt_psm_prep
diff lib/CPT/Parameter/File/Input.pm @ 1:d724f34e671d draft default tip
planemo upload commit 94b0cd1fff0826c6db3e7dc0c91c0c5a8be8bb0c
author | cpt |
---|---|
date | Mon, 05 Jun 2023 02:50:07 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/CPT/Parameter/File/Input.pm Mon Jun 05 02:50:07 2023 +0000 @@ -0,0 +1,98 @@ +package CPT::Parameter::File::Input; +use Moose; +with 'CPT::Parameter'; + +has 'format' => ( is => 'rw', isa => 'Str' ); +has 'file_format' => ( is => 'rw', isa => 'ArrayRef' ); + +# Format is something like "fastq", "bam", etc. +# This means when you write the parameter string it'll be +# ['file|f=s', 'Input Bam File', { required => 1, format=> 'file/input/bam'} ] +# Which will specify that you require a BAM file. + + +sub galaxy_input { + my ( $self, $xml_writer ) = @_; + $self->handle_possible_galaxy_input_repeat_start($xml_writer); + my %params = $self->get_default_input_parameters('data'); + if( defined $self->file_format() ){ + $params{format} = join( ',', @{$self->file_format()} ); + } + $xml_writer->startTag( + 'param', + %params + ); + $xml_writer->endTag('param'); + $self->handle_possible_galaxy_input_repeat_end($xml_writer); +} + + +sub galaxy_output { + my ($self, $xml_writer) = @_; + return $xml_writer; +} + + +sub validate_individual { + my ($self, $val) = @_; + + # Maybe do format validation here? Maybe? + if ( -e $val ) { + return 1; + }else{ + push(@{$self->errors()}, sprintf( "File [%s] supplied to option %s does not exist", $val,$self->name())); + return 0; + } +} + + +sub getopt_format { + return '=s'; +} + +no Moose; +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +CPT::Parameter::File::Input + +=head1 VERSION + +version 1.99.4 + +=head2 galaxy_input + + $file_param->galaxy_input($xml_writer); # where $file_param is a CPT::Parameter::* + +Utilises the $xml_writer to add a <data> block in the <output> section + +=head2 galaxy_output + + $file_param->galaxy_output($xml_writer); # where $file_param is a CPT::Parameter::* + +Utilises the $xml_writer to add a <data> block in the <output> section + +=head2 getopt_format + +Returns the format character for a given CPT::Parameter::* type + +=head1 AUTHOR + +Eric Rasche <rasche.eric@yandex.ru> + +=head1 COPYRIGHT AND LICENSE + +This software is Copyright (c) 2014 by Eric Rasche. + +This is free software, licensed under: + + The GNU General Public License, Version 3, June 2007 + +=cut