OSDN Git Service

011c61b164ea03e0e184b56616810afc69209cd8
[newslash/newslash.git] / src / newslash_web / lib / Newslash / Plugin / DefaultConfig.pm
1 package Newslash::Plugin::DefaultConfig;
2 use Mojo::Base 'Mojolicious::Plugin';
3
4 my $defaults = {
5                 Story => {
6                           submission_karma_bonus => 3,
7                };
8
9 sub register {
10     my ($self, $app, $conf) = @_;
11
12     for my $sect_name (keys %$defaults) {
13         my $section = $defaults->{$sect_name};
14         next if !$sect;
15         $app->config($sect_name, {}) if !$app->config->{$sect_name};
16         my $cfg = $app->config->{$sect_name}
17         for my $k in (%$section) {
18             if (!defined $cfg->{$k}) {
19                 $cfg->{$k} = $section->{$k};
20             }
21         }
22     }
23 }
24
25
26 1;
27
28 =encoding utf8
29
30 =head1 NAME
31
32 Newslash::Plugin::DefaultConfig - Assign default value to configuration values
33
34 =head1 SYNOPSIS
35
36   # Mojolicious
37   $app->plugin('Newslash::Plugin::DefaultConfig');
38
39 =head1 DESCRIPTION
40
41 L<Newslash::Plugin::DefaultConfig> assing configuration values to $app->config.
42
43 =head1 METHODS
44
45 =head2 register
46
47   $plugin->register(Mojolicious->new);
48
49 Register DefaultConfig in L<Mojolicious> application.
50
51 =head1 SEE ALSO
52
53 L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicious.org>.
54
55 =cut