| Path-Resolver documentation | Contained in the Path-Resolver distribution. |
Path::Resolver::Resolver::DataSection - find content in a package's Data::Section content
version 3.100451
my $resolver = Path::Resolver::Resolver::DataSection->new({
module => 'YourApp::Config::InData',
});
my $simple_entity = $resolver->entity_at('foo/bar.txt');
This class assumes that you will give it the name of another package and that
that package uses Data::Section to retrieve named content from
its DATA blocks and those of its parent classes.
The native type of this resolver is a class type of Path::Resolver::SimpleEntity and it has no default converter.
This is the name of the module to load and is also used as the package (class) on which to call the data-finding method.
This attribute may be given to supply a method name to call to find content in
a package. The default is Data::Section's default: section_data.
Ricardo Signes <rjbs@cpan.org>
This software is copyright (c) 2010 by Ricardo Signes.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| Path-Resolver documentation | Contained in the Path-Resolver distribution. |
package Path::Resolver::Resolver::DataSection; BEGIN { $Path::Resolver::Resolver::DataSection::VERSION = '3.100451'; } # ABSTRACT: find content in a package's Data::Section content use Moose; with 'Path::Resolver::Role::Resolver'; use namespace::autoclean; use File::Spec::Unix; use Moose::Util::TypeConstraints; use Path::Resolver::SimpleEntity; sub native_type { class_type('Path::Resolver::SimpleEntity') } has module => ( is => 'ro', isa => 'Str', required => 1, ); has data_method => ( is => 'ro', isa => 'Str', default => 'section_data', ); sub BUILD { my ($self) = @_; my $module = $self->module; eval "require $module; 1" or die; } sub entity_at { my ($self, $path) = @_; my $filename = File::Spec::Unix->catfile(@$path); my $method = $self->data_method; my $content_ref = $self->module->$method($filename); return unless defined $content_ref; return Path::Resolver::SimpleEntity->new({ content_ref => $content_ref }); } 1; __END__