package SQL::Dialects::Role; ######################################################################### # # This module is copyright (c), 2009 by Michael G. Schwern # This module is copyright (c), 2009-2017 by Jens Rehsack. # All rights reserved. # # It may be freely distributed under the same terms as Perl itself. # # See below for help (search for SYNOPSIS) ######################################################################### use strict; use warnings FATAL => "all"; use base qw(Exporter); our @EXPORT = qw(get_config_as_hash); our $VERSION = '1.412'; sub get_config_as_hash { my $class = $_[0]; my @data = split( m/\n/, $class->get_config() ); my %config; my $feature; for (@data) { chomp; s/^\s+//; s/\s+$//; next unless ($_); if (/^\[(.*)\]$/i) { $feature = lc $1; $feature =~ s/\s+/_/g; next; } my $newopt = uc $_; $newopt =~ s/\s+/ /g; $config{$feature}{$newopt} = 1; } return \%config; } =head1 NAME SQL::Dialects::Role - The role of being a SQL::Dialect =head1 SYNOPSIS package My::SQL::Dialect; use SQL::Dialects::Role; sub get_config { return <get_config; Returns information about the dialect in an INI-like format. =head2 Implements The role implements... =head3 get_config_as_hash my $config = $class->get_config_as_hash; Returns the data represented in get_config() as a hash ref. Items will be upper-cased, sections will be lower-cased. The example in the SYNOPSIS would come back as... { section => { ITEM1 => 1, ITEM2 => 2, }, another_section => { ITEM1 => 1, ITEM2 => 2, } } =head1 AUTHOR & COPYRIGHT This module is copyright (c), 2009 by Michael G. Schwern copyright (c), 2009-2017 by Jens Rehsack. All rights reserved. The module may be freely distributed under the same terms as Perl itself using either the "GPL License" or the "Artistic License" as specified in the Perl README file. Jeff can be reached at: jzuckerATcpan.org Jens can be reached at: rehsackATcpan.org or via dbi-devATperl.org =head1 SEE ALSO L =cut