Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dancer::config::object(3pm) [debian man page]

Dancer::Config::Object(3pm)				User Contributed Perl Documentation			       Dancer::Config::Object(3pm)

NAME
Dancer::Config::Object - Access the config via methods instead of hashrefs DESCRIPTION
If "strict_config" is set to a true value in the configuration, the "config()" subroutine will return an object instead of a hashref. Instead of this: my $serializer = config->{serializer}; my $username = config->{auth}{username}; You get this: my $serializer = config->serializer; my $username = config->auth->username; This helps to prevent typos. If you mistype a configuration name: my $pass = config->auth->pass; An exception will be thrown, tell you it can't find the method name, but listing available methods: Can't locate config attribute "pass". Available attributes: password, username If the hash key cannot be converted into a proper method name, you can still access it via a hash reference: my $some_value = config->{'99_bottles'}; And call methods on it, if possible: my $sadness = config->{'99_more_bottles'}->last_bottle; Hash keys pointing to hash references will in turn have those "objectified". Arrays will still be returned as array references. However, hashrefs inside of the array refs may still have their keys allowed as methods: my $some_value = config->some_list->[1]->host; METHOD NAME DEFINITION
We use the following regular expression to determine if a hash key qualifies as a method: /^[[:alpha:]_][[:word:]]*$/; Note that this means "naA~Xve" (note the dots over the i) can be a method name, but unless you "use utf8;" to declare that your source code is UTF-8, you may have disappointing results calling "config->naA~Xve". Further, depending on your version of Perl and the software to read your config file ... well, you get the idea. We recommend sticking with ASCII identifiers if you wish your code to be portable. Patches/suggestions welcome. AUTHOR
This module has been written by Alexis Sukrieh <sukria@cpan.org> and others, see the AUTHORS file that comes with this distribution for details. LICENSE
This module is free software and is released under the same terms as Perl itself. SEE ALSO
Dancer and Dancer::Config. perl v5.14.2 2012-03-31 Dancer::Config::Object(3pm)

Check Out this Related Man Page

Dancer::Plugin(3pm)					User Contributed Perl Documentation				       Dancer::Plugin(3pm)

NAME
Dancer::Plugin - helper for writing Dancer plugins DESCRIPTION
Create plugins for Dancer SYNOPSIS
package Dancer::Plugin::LinkBlocker; use Dancer ':syntax'; use Dancer::Plugin; register block_links_from => sub { my $conf = plugin_setting(); my $re = join ('|', @{$conf->{hosts}}); before sub { if (request->referer && request->referer =~ /$re/) { status 403 || $conf->{http_code}; } }; }; register_plugin; 1; And in your application: package My::Webapp; use Dancer ':syntax'; use Dancer::Plugin::LinkBlocker; block_links_from; # this is exported by the plugin PLUGINS
You can extend Dancer by writing your own Plugin. A plugin is a module that exports a bunch of symbols to the current namespace (the caller will see all the symbols defined via "register"). Note that you have to "use" the plugin wherever you want to use its symbols. For instance, if you have Webapp::App1 and Webapp::App2, both loaded from your main application, they both need to "use FooPlugin" if they want to use the symbols exported by "FooPlugin". METHODS register Lets you define a keyword that will be exported by the plugin. register my_symbol_to_export => sub { # ... some code }; register_plugin A Dancer plugin must end with this statement. This lets the plugin register all the symbols define with "register" as exported symbols (via the Exporter module). A Dancer plugin inherits from Dancer::Plugin and Exporter transparently. plugin_setting Configuration for plugin should be structured like this in the config.yml of the application: plugins: plugin_name: key: value If "plugin_setting" is called inside a plugin, the appropriate configuration will be returned. The "plugin_name" should be the name of the package, or, if the plugin name is under the Dancer::Plugin:: namespace (which is recommended), the remaining part of the plugin name. Enclose the remaining part in quotes if it contains ::, e.g. for Dancer::Plugin::Foo::Bar, use: plugins: "Foo::Bar": key: value AUTHORS
This module has been written by Alexis Sukrieh and others. LICENSE
This module is free software and is published under the same terms as Perl itself. perl v5.14.2 2011-11-30 Dancer::Plugin(3pm)
Man Page