DBIx::Class::Helpers::Util - Helper utilities for DBIx::Class components
version 2.018001
use DBIx::Class::Helpers::Util ':all'; my ($namespace, $class) = get_namespace_parts('MyApp:Schema::Person'); is $namespace, 'MyApp::Schema'; is $class, 'Person'; if (is_load_namespaces('MyApp::Schema::Result::Person')) { print 'correctly structured project'; } if (is_not_load_namespaces('MyApp::Schema::Person')) { print 'incorrectly structured project'; } if (assert_similar_namespaces('MyApp::Schema::Person', 'FooApp::Schema::People')) { print 'both projects are structured similarly'; } if (assert_similar_namespaces('MyApp::Schema::Result::Person', 'FooApp::Schema::Result::People')) { print 'both projects are structured similarly'; } # in a resultset sub search { my ($self, $search, $attrs) = @_; $attrs->{order_by} = order_by_visitor($attrs->{order_by}, sub { my $field = shift; return 'foo_bar' if $field eq 'foo.bar'; return $field; }) if $attrs && $attrs->{order_by}; $self->next::method($search, $attrs); } # in schema sub connection { my $self = shift; my $args = normalize_connect_info(@_); $args->{quote_names} = 1; $self->next::method($args) }
A collection of various helper utilities for DBIx::Class stuff. Probably only useful for components.
This function allows you to easily transform order_by clauses. See "SYNOPSIS" for example.
order_by
Returns the namespace and class name of a package. See "SYNOPSIS" for example.
Returns true if a package is structured in a way that would work for load_namespaces. See "SYNOPSIS" for example.
Returns true if a package is structured in a way that would not work for load_namespaces. See "SYNOPSIS" for example.
Dies if both packages are structured in the same way. The same means both are load_namespaces or both are not. See "SYNOPSIS" for example.
Takes all of the various and interesting forms that can be passed to connect and normalizes them into the final and simplest form, a single hashref.
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install DBIx::Class::Helpers, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::Class::Helpers
CPAN shell
perl -MCPAN -e shell install DBIx::Class::Helpers
For more information on module installation, please visit the detailed CPAN module installation guide.