diff lib/CPT/Parameter/Option.pm @ 1:97ef96676b48 draft

planemo upload commit 94b0cd1fff0826c6db3e7dc0c91c0c5a8be8bb0c
author cpt
date Mon, 05 Jun 2023 02:51:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/CPT/Parameter/Option.pm	Mon Jun 05 02:51:26 2023 +0000
@@ -0,0 +1,100 @@
+package CPT::Parameter::Option;
+use Moose::Role;
+use strict;
+use warnings;
+use autodie;
+with 'CPT::Parameter';
+
+has 'options' => ( is => 'rw', isa => 'HashRef' );
+# stored as {short => "some long text"}
+
+
+sub galaxy_input {
+	my ( $self, $xml_writer ) = @_;
+	$self->handle_possible_galaxy_input_repeat_start($xml_writer);
+	my %params = $self->get_default_input_parameters('select');
+	$xml_writer->startTag(
+		'param',
+        %params,
+	);
+	my %options = %{ $self->options() };
+	foreach ( sort( keys(%options)) ) {
+        my %p = (value => $_);
+        if(defined $_  && defined $self->default() && $_ eq $self->default()){
+            $p{selected} = 'True';
+        }
+		$xml_writer->startTag( 'option', %p);
+		$xml_writer->characters( $options{$_} );
+		$xml_writer->endTag('option');
+	}
+	$xml_writer->endTag('param');
+	$self->handle_possible_galaxy_input_repeat_end($xml_writer);
+}
+
+
+sub galaxy_output {
+
+}
+
+sub validate_individual {
+	my ($self, $val) = @_;
+	my %options = %{ $self->options() };
+	if($options{$val}){
+		return 1;
+	}{
+		push(@{$self->errors()}, sprintf( "Unknown value [%s] supplied to a option %s", $val,$self->name()));
+		return 0;
+	}
+}
+
+
+sub getopt_format {
+	return '=s';
+}
+
+no Moose::Role;
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+CPT::Parameter::Option
+
+=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