view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
=head1 SYNOPSIS
use Mozilla::Prefs::Simple;
my $p = new Mozilla::Prefs::Simple('prefs.js');
$p->set_pref("browser.blink_allowed", "true");
$p->set_pref("general.useragent.locale", "\"en-US\"");
if ($p->get_pref("mailnews.reply_header_type") == 2) {
...
}
$p->save_file('prefs.js');
=head1 DESCRIPTION
This is a no-frills module for reading and writing Mozilla preference
files.
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
Create a new preferences object.
my $p = new Mozilla::Prefs::Simple();
my $p = new Mozilla::Prefs::Simple('prefs.js');
=cut
sub new {
my $class = shift || __PACKAGE__;
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
=cut
sub clear {
my $self = shift;
delete $self->{_prefs};
tie my %prefs, 'Tie::Hash::Sorted';
$self->{_prefs} = \%prefs;
}
sub _parse_line {
my $self = shift;
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
return $data;
}
=item load_file
$p->load_file('prefs.js');
Loads a preferences file.
If preferences are already set, they will be overwritten or merged with
the ones in the file.
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
sub set_pref {
my $self = shift;
my $key = shift;
my $value = shift;
$self->{_prefs}->{$key} = "$value";
}
sub set_pref_q {
my $self = shift;
my $key = shift;
my $value = shift;
$self->{_prefs}->{$key} = "\"$value\"";
}
=item get_pref
my $val = $p->get_pref("some.pref");
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
=cut
sub get_pref {
my $self = shift;
my $key = shift;
return $self->{_prefs}->{$key};
}
=item has_pref
if ($p->has_pref("some.pref")) {
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
=cut
sub has_pref {
my $self = shift;
my $key = shift;
return exists $self->{_prefs}->{$key};
}
=item print_pref
$p->print_pref("some.pref", $fh);
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
my $value = $self->get_pref($key);
my $fh = shift;
print $fh "user_pref(\"$key\", $value);\n";
}
=item print_prefs
$p->print_prefs($fh);
Prints out all of the preferences to the filehandle.
If no filehandle is given, C<STDOUT> is assumed.
=cut
sub print_prefs {
my $self = shift;
my $fh = shift || \*STDOUT;
while (my ($key, $value) = each %{$self->{_prefs}}) {
$self->print_pref($key, $fh);
}
}
=item save_file
$p->save_file('prefs.js');
Saves the preferences to the given filename.
If the file exists, a backup copy is made of the original.
lib/Mozilla/Prefs/Simple.pm view on Meta::CPAN
# *
# * If you make changes to this file while the application is running,
# * the changes will be overwritten when the application exits.
# *
# * To make a manual change to preferences, you can visit the URL about:config
# * For more information, see http://www.mozilla.org/unix/customizing.html#prefs
# */
# ";
print $fh "\n/* Generated by " .
__PACKAGE__ . " on " . localtime() . " */\n\n";
$self->print_prefs($fh);
close $fh;
}
=back
view all matches for this distribution
view release on metacpan or search on metacpan
archives/Muldis_D_PDAFP_200807_sa.xul view on Meta::CPAN
relational database is that
multiple perceptions of the
same data can exist at once;
each user can perceive the
same data being organized
according to their own prefs
----
Even if the actual means of
storing data changes over
time, users continue to be
able to perceive it in the
view all matches for this distribution
view release on metacpan or search on metacpan
lib/MusicBrainz/Collection.pm view on Meta::CPAN
require File::Spec;
my $file = File::Spec->catfile( $ENV{HOME}, '.musicbrainz' );
if ( -e $file ) {
open my $fh, '<', $file or die "Unable to read .musicbrainz file: $!\n";
my $prefs = do { local $/; <$fh> };
close $fh;
($self->{user}) = $prefs =~ m/user\s+(.+)/;
($self->{pass}) = $prefs =~ m/pass\s+(.+)/;
}
}
sub _find_albums {
my ( $self, $dir ) = @_;
view all matches for this distribution
view release on metacpan or search on metacpan
htdocs/src-min/ext-modelist.js view on Meta::CPAN
define("ace/ext/modelist",["require","exports","module"],function(e,t,n){"use strict";function i(e){var t=a.text,n=e.split(/[\/\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=...
(function() {
window.require(["ace/ext/modelist"], function() {});
})();
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Nabaztag.pm view on Meta::CPAN
It has following properties:
mac : MAC Adress of nabaztag - equivalent to Serial Number ( SN ). Written at the back
of your nabaztag !!
token : TOKEN Given by nabaztag.com to allow interaction with you nabaztag. See
http://www.nabaztag.com/vl/FR/api_prefs.jsp to obtain yours !!
leftEarPos : position of left ear.
rightEarPos : position of right ear.
usage:
my $nab = Nabaztag->new($mac , $token );
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Async/Slack/Commands.pm view on Meta::CPAN
die $res unless $res->{ok};
return $res;
}
=head2 admin_conversations_get_conversation_prefs
Get conversation preferences for a public or private channel.
L<API method documentation|https://api.slack.com/methods/admin.conversations.getConversationPrefs>
lib/Net/Async/Slack/Commands.pm view on Meta::CPAN
Resolves to a structure representing the response.
=cut
async sub admin_conversations_get_conversation_prefs {
my ($self, %args) = @_;
my $uri = $self->endpoint(
'admin_conversations_get_conversation_prefs',
);
my $content = encode_json_utf8({
%args{grep { exists $args{$_} } qw(channel_id)}
});
my ($res) = await $self->http_post(
lib/Net/Async/Slack/Commands.pm view on Meta::CPAN
);
return $res;
}
=head2 admin_conversations_set_conversation_prefs
Set the posting permissions for a public or private channel.
L<API method documentation|https://api.slack.com/methods/admin.conversations.setConversationPrefs>
Takes the following named parameters:
=over 4
=item * C<channel_id> - The channel to set the prefs for (string, required)
=item * C<prefs> - The prefs for this channel in a stringified JSON format. (string, required)
=back
Resolves to a structure representing the response.
=cut
async sub admin_conversations_set_conversation_prefs {
my ($self, %args) = @_;
my $uri = $self->endpoint(
'admin_conversations_set_conversation_prefs',
);
my $content = encode_json_utf8({
%args{grep { exists $args{$_} } qw(channel_id prefs)}
});
my ($res) = await $self->http_post(
$uri,
$content,
content_type => 'application/json; charset=utf-8',
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Async/Trello/Generated/Board.pm view on Meta::CPAN
=cut
sub power_ups { shift->{powerUps} }
=head2 prefs
Provides an accessor for C<prefs>.
=cut
sub prefs { shift->{prefs} }
=head2 short_link
Provides an accessor for C<shortLink>.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Async/WebSearch.pm view on Meta::CPAN
=item * B<Reddit> (public JSON) â no key
Works out of the box but rate-limited aggressively with generic UAs.
Fine for low-volume use; for anything serious use OAuth (below).
=item * B<Reddit OAuth> â L<https://www.reddit.com/prefs/apps>
Free. You need a Reddit account and a working User-Agent string
(Reddit insists on the form C<< app/1.0 by /u/yourname >>). At the
bottom of L<https://www.reddit.com/prefs/apps> click I<create app>,
pick type B<script> (for C<client_credentials>/C<password>) or
B<installed> (for C<installed>) or B<web> (for the full
C<authorization_code> consent flow). The short string under the app
name is C<client_id>; C<secret> is shown once on creation. Rate limit
is 100 QPM per OAuth identity. See
lib/Net/Async/WebSearch.pm view on Meta::CPAN
Brave $5/month credits (~1000 q) yes api.search.brave.com/app/dashboard
Serper 2500 / signup no serper.dev (dashboard after signup)
Google CSE 100 / day no Cloud Console + programmablesearchengine.google.com
Yandex Cloud trial credits no console.yandex.cloud/link/search-api/
Reddit keyless (rate-limited) no (no key)
Reddit OAuth 100 QPM per client_id no reddit.com/prefs/apps
=head2 Fetching result bodies
Pass C<fetch =E<gt> N> to any of the search modes to additionally GET the top
N result URLs and attach the response to each C<Result> under C<< $r->fetched >>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/BitTorrentSync.pm view on Meta::CPAN
set_listened_address
add_folder
get_folders
remove_folder
get_files
set_file_prefs
get_folder_peers
get_secrets
get_folder_prefs
set_folder_prefs
get_folder_hosts
set_folder_hosts
get_prefs
set_prefs
get_os
get_version
get_speed
shutdown_btsync
);
lib/Net/BitTorrentSync.pm view on Meta::CPAN
$request .= "&path=$path" if $path;
return _access_api($request);
}
=head2 set_file_prefs
Selects file for download for selective sync folders.
Returns file information with applied preferences.
=over 4
lib/Net/BitTorrentSync.pm view on Meta::CPAN
=back
=cut
sub set_file_prefs {
my ($secret, $path, $download) = @_;
my $request = "get_files&secret=$secret&path=$path&download=$download";
return _access_api($request);
}
lib/Net/BitTorrentSync.pm view on Meta::CPAN
$request .= "&secret=$secret" if $secret;
$request .= "&type=encryption" if $type;
return _access_api($request);
}
=head2 get_folder_prefs
Returns preferences for the specified sync folder.
{
search_lan => 1,
lib/Net/BitTorrentSync.pm view on Meta::CPAN
=back
=cut
sub get_folder_prefs {
my ($secret) = @_;
my $request = "get_folder_prefs&secret=$secret";
return _access_api($request);
}
=head2 set_folder_prefs
Sets preferences for the specified sync folder.
Parameters are the same as in âGet folder preferencesâ.
Returns current settings.
lib/Net/BitTorrentSync.pm view on Meta::CPAN
=back
=cut
sub set_folder_prefs {
my ($secret, $prefs) = @_;
my $request = "set_folder_prefs&secret=$secret";
foreach my $pref (keys %{$prefs}) {
$request .= '&' . $pref . '=' . $prefs->{$pref};
}
return _access_api($request);
}
lib/Net/BitTorrentSync.pm view on Meta::CPAN
$request .= join ',', @{$hosts};
return _access_api($request);
}
=head2 get_prefs
Returns BitTorrent Sync preferences.
Contains dictionary with advanced preferences.
Please see Sync user guide for description of each option.
lib/Net/BitTorrentSync.pm view on Meta::CPAN
recv_buf_size => "5"
}
=cut
sub get_prefs {
return _access_api("get_prefs");
}
=head2 set_prefs
Sets BitTorrent Sync preferences.
Parameters are the same as in âGet preferencesâ.
Advanced preferences are set as general settings. Returns current settings.
=over 4
=item preferences (required)
A hashref (see get_prefs) containing the preferences you wish to change.
=back
=cut
sub set_prefs {
my ($secret, $prefs) = @_;
my $request = "set_prefs";
foreach my $pref (keys %{$prefs}) {
$request .= '&' . $pref . '=' . $prefs->{$pref};
}
return _access_api($request);
}
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/CLI/Interact/Role/Engine.pm view on Meta::CPAN
=item C<< no_ors => 1 >> (optional)
When passed a true value, a newline character (in fact the value of C<ors>)
will not be appended to the statement sent to the device.
=item C<< match => $name | $regexpref | \@names_and_regexprefs >> (optional)
Allows this command (only) to complete with a custom match, which must be one
or more of either the name of a loaded phrasebook Prompt or your own regular
expression reference (C<< qr// >>). The module updates the current prompt to
be the same value on a successful match.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/DRI/Protocol/EPP/Extensions/COOP/Contact.pm view on Meta::CPAN
{
my $s=shift;
return map { ['coop:sponsor',$_] } (ref($s)? @$s : $s);
}
sub build_prefs
{
my $contact=shift;
my @n;
push @n,['coop:langPref',$contact->lang()] if $contact->lang();
push @n,['coop:mailingListPref',$contact->mailing_list()] if $contact->mailing_list();
lib/Net/DRI/Protocol/EPP/Extensions/COOP/Contact.pm view on Meta::CPAN
my ($epp,$contact)=@_;
my $mes=$epp->message();
## validate() has been called
my @n;
push @n,build_prefs($contact);
push @n,build_sponsors($contact->sponsors()) if $contact->sponsors();
return unless @n;
my $eid=build_command_extension($mes,$epp,'coop:create');
lib/Net/DRI/Protocol/EPP/Extensions/COOP/Contact.pm view on Meta::CPAN
my $mes=$epp->message();
my @n;
push @n,['coop:add',build_sponsors($todo->add('sponsor'))] if $todo->add('sponsor');
push @n,['coop:rem',build_sponsors($todo->del('sponsor'))] if $todo->del('sponsor');
my @nn=build_prefs($todo->set('info'));
push @n,['coop:chg',\@nn] if @nn;
return unless @n;
my $eid=build_command_extension($mes,$epp,'coop:update');
$mes->command_extension($eid,\@n);
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
my $cfg=`cmd /c type $cpancfg`;
$cfg=~s/^(.*cpan_home[']?\s*[=][>]\s*q[[])[^]]+([]].*)$/$1$ch$2/s;
my $ksw='keep_source_where';
my $chi=$ch."\\\\sources";
$cfg=~s/^(.*$ksw[']?\s*[=][>]\s*q[[])[^]]+([]].*)$/$1$chi$2/s;
$chi=$ch."\\\\prefs";
$cfg=~s/^(.*prefs_dir[']?\s*[=][>]\s*q[[])[^]]+([]].*)$/$1$chi$2/s;
$chi=$ch."\\\\build";
$cfg=~s/^(.*build_dir[']?\s*[=][>]\s*q[[])[^]]+([]].*)$/$1$chi$2/s;
$chi=$ch."\\\\histfile";
$cfg=~s/^(.*histfile[']?\s*[=][>]\s*q[[])[^]]+([]].*)$/$1$chi$2/s;
$cfg=~s/^(.*use_sqlite[']?\s*[=][>]\s*q[[])[^]]+([]].*)$/${1}0$2/s;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Google/Calendar/WebContent.pm view on Meta::CPAN
$content->web_content(
url => 'http://www.thefreedictionary.com/_/WoD/wod-module.xml',
width => 300,
height => 136,
type => 'application/x-google-gadgets+xml',
prefs => { Days => 1, Format => 0 },
);
(note the ability to set webContentGadgetPrefs using the special prefs attribute).
=head1 METHODS
=head2 new [opt[s]]
lib/Net/Google/Calendar/WebContent.pm view on Meta::CPAN
=item type
The mime-type (see above)
=item prefs
This takes a hash ref and all pairs are turned into C<webContentGadgetPref> entries.
=back
lib/Net/Google/Calendar/WebContent.pm view on Meta::CPAN
$self->_set_type($type);
}
# egregious hack
$params{'xmlns:gd'} = 'http://schemas.google.com/g/2005';
$params{'xmlns:gCal'} = 'http://schemas.google.com/gCal/2005';
my $prefs = delete $params{prefs};
XML::Atom::Base::set($self, '', $name, '', \%params);
my $content = $self->_my_get('', $name);
foreach my $key (keys %{$prefs}) {
# TODO: this feels icky
my $node;
if (LIBXML) {
$node = XML::LibXML::Element->new($name.'GadgetPref');
$node->setAttribute( name => $key );
$node->setAttribute( value => $prefs->{$key} );
} else {
$node = XML::XPath::Node::Element->new($name.'GadgetPref');
$node->addAttribute(XML::XPath::Node::Attribute->new(name => $key));
$node->addAttribute(XML::XPath::Node::Attribute->new(value => $prefs->{key}));
}
$content->appendChild($node);
}
}
return $self->_my_get('', $name);
view all matches for this distribution
view release on metacpan or search on metacpan
t/sample/05.issue_search.html view on Meta::CPAN
<th class="col_6" nowrap="nowrap" id="summaryheading"
onclick="_showBelow('pop_6',this)" width="100%"
><a href="#" style="text-decoration: none">Summary + Labels</a></th>
<th onclick="return _showBelow('pop__dot',this)" style="width:3ex"><a href="#columnprefs"
style="text-decoration: none; background: none; margin-right:0; padding-right:0">...</a></th>
</tr>
<tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this); cancelBubble=false;"
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Nessus/Client.pm view on Meta::CPAN
$sock->print($pass);
my $self = \%attr;
bless($self, (ref($class) or $class));
$self->{'plugins'} = $self->GetMsg('PLUGIN_LIST');
if ($proto >= 1.1) {
$self->{'prefs'} = $self->GetMsg('PREFERENCES');
$self->{'rules'} = $self->GetMsg('RULES');
}
$self;
}
lib/Net/Nessus/Client.pm view on Meta::CPAN
=pod
=head2 Reading the plugin list
my $plugins = $self->Plugins();
my $prefs = $self->Prefs();
my $rules = $self->Rules();
(Instance Methods) Read the plugin list, the current preferences or the
list of rules. The plugin list is an array of hash refs, each hash ref
with attributes I<id>, I<category> and so on. The prefs are a single
hash ref of name/value pairs and the rules are an array ref of strings.
When talking to an NTP/1.0 server, the Prefs() and Rules() methods
will return undef.
lib/Net/Nessus/Client.pm view on Meta::CPAN
my $plugins = $self->Plugins();
print("The first plugins ID is ", $plugins->[0]->{'id'}, "\n");
print("The second plugins description is ",
$plugins->[1]->{'description'}, "\n");
my $prefs = $self->Prefs();
print "\nThe current prefs are:\n";
while (my($var, $val) = each %$prefs) {
print " $var = $val\n";
}
my $rules = $self->Rules();
print "\nThe current rules are:\n";
foreach my $rule (@$rules) {
lib/Net/Nessus/Client.pm view on Meta::CPAN
}
=cut
sub Plugins { shift->{'plugins'}->Plugins() }
sub Prefs { my $prefs = shift->{'prefs'}; $prefs ? $prefs->Prefs() : undef }
sub Rules { my $rules = shift->{'rules'}; $rules ? $rules->Rules() : undef }
=pod
view all matches for this distribution