This file is indexed.

/usr/share/perl5/Lire/Config/BasePluginSpec.pm is in lire 2:2.1.1-2.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package Lire::Config::BasePluginSpec;

use strict;

=pod

=head1 NAME

Lire::Config::BasePluginSpec - PluginManager based PluginSpec

=head1 DESCRIPTION

This is Lire::Config::PluginSpec that determines its valid list of
options from the Lire::PluginManager.

=cut

use base qw/Lire::Config::PluginSpec/;

use Lire::Config::OptionSpec;
use Lire::PluginManager;
use Carp;

=pod

=head2 new()

Create a Lire::Config::BasePluginSpec object.

=head2 plugin_type()

Subclasses should defines a plugin_type() method that would be use
to select the available options.

=cut

sub plugin_type {
    croak ref shift, '::plugin_type() unimplemented';
}

sub is_valid {
    my ( $self, $val ) = @_;

    return !$self->required() unless defined $val;

    return Lire::PluginManager->has_plugin( $self->plugin_type(), $val );
}

sub normalize {
    my ( $self, $val ) = @_;

    return $self->is_valid( $val ) ? $val : undef;
}

sub add {
    croak( ref shift, ' cannot contain any components' );
}

sub options {
    my $self = $_[0];

    my @options;

    my $mgr = Lire::PluginManager->instance();
    foreach my $name ( @{$mgr->plugin_names( $self->plugin_type() ) } ) {
        my $plugin = $mgr->get_plugin( $self->plugin_type(), $name );
        push @options,
          new Lire::Config::OptionSpec( 'name' => $name,
                                        'summary' => $plugin->title(),
                                        'description' => $plugin->description()
                                      );
    }
    return sort { $a->name() cmp $b->name() } @options;
}

1;

__END__

=pod

=head1 SEE ALSO

 Lire::Config::DlfConverterSpec(3pm) Lire::Config::

=head1 VERSION

$Id: BasePluginSpec.pm,v 1.3 2006/07/23 13:16:30 vanbaal Exp $

=head1 AUTHORS

  Francis J. Lacoste <flacoste@logreport.org>
  Wessel Dankers <wsl@logreport.org>
  Wolfgang Sourdeau <wolfgang@logreport.org>

=head1 COPYRIGHT

Copyright (C) 2002-2004  Stichting LogReport Foundation LogReport@LogReport.org

This file is part of Lire.

Lire is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program (see COPYING); if not, check with
http://www.gnu.org/copyleft/gpl.html.

=cut