annotate cpt_psm_comparison_table/lib/CPT/Circos/Conf.pm @ 0:b8b8b52904a5 draft

Uploaded
author cpt
date Tue, 05 Jul 2022 05:42:59 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
1 package CPT::Circos::Conf;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
2 use strict;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
3 use warnings;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
4 use autodie;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
5 use Moose;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
6
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
7 # This parameter specifies that we should behave according to galaxy_override spec.
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
8 has data => (
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
9 is => 'rw',
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
10 isa => 'ArrayRef',
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
11 default => sub {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
12 []
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
13 },
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
14 );
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
15 my @current_block = ();
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
16
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
17 sub set {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
18 my ($self, $key, $value) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
19 $self->push_d(sprintf('%s = %s', $key, $value));
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
20 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
21
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
22 sub start_block {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
23 my ($self, $block) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
24 $self->push_d(sprintf('<%s>', $block));
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
25 push(@current_block, $block);
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
26 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
27
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
28 sub end_block {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
29 my ($self) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
30 $self->push_d(sprintf('</%s>', pop @current_block));
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
31 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
32
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
33 sub include {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
34 my ($self, $file) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
35 $self->push_d(sprintf('<<include %s>>', $file));
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
36 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
37
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
38 sub push_d {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
39 my ($self, $string) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
40 push(@{$self->data()}, $self->spaces_for_indent() . $string);
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
41 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
42
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
43 sub spaces_for_indent {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
44 my ($self) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
45 if(scalar(@current_block) > 0){
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
46 return ' ' x scalar(@current_block);
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
47 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
48 return '';
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
49 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
50
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
51 sub finalize {
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
52 my ($self) = @_;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
53 if(scalar @current_block > 0){
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
54 die 'Blocks [' . join(',', @current_block) . '] were not closed';
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
55 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
56 else{
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
57 return join("\n", @{$self->data()});
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
58 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
59 }
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
60
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
61 no Moose::Role;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
62 1;
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
63
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
64 __END__
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
65
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
66 =pod
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
67
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
68 =encoding UTF-8
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
69
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
70 =head1 NAME
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
71
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
72 CPT::Circos::Conf
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
73
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
74 =head1 VERSION
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
75
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
76 version 1.99.4
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
77
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
78 =head1 AUTHOR
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
79
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
80 Eric Rasche <rasche.eric@yandex.ru>
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
81
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
82 =head1 COPYRIGHT AND LICENSE
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
83
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
84 This software is Copyright (c) 2014 by Eric Rasche.
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
85
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
86 This is free software, licensed under:
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
87
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
88 The GNU General Public License, Version 3, June 2007
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
89
b8b8b52904a5 Uploaded
cpt
parents:
diff changeset
90 =cut