package Data::Object::Func::String::Camelcase; use Data::Object 'Class'; extends 'Data::Object::Func::String'; our $VERSION = '1.04'; # VERSION # BUILD has arg1 => ( is => 'ro', isa => 'Object', req => 1 ); # METHODS sub execute { my ($self) = @_; my ($data) = $self->unpack; my $result = ucfirst(lc("$data")); $result =~ s/[^a-zA-Z0-9]+([a-z])/\U$1/g; $result =~ s/[^a-zA-Z0-9]+//g; return $result; } sub mapping { return ('arg1'); } 1; =encoding utf8 =head1 NAME Data::Object::Func::String::Camelcase =cut =head1 ABSTRACT Data-Object String Function (Camelcase) Class =cut =head1 SYNOPSIS use Data::Object::Func::String::Camelcase; my $func = Data::Object::Func::String::Camelcase->new(@args); $func->execute; =cut =head1 DESCRIPTION Data::Object::Func::String::Camelcase is a function object for Data::Object::String. =cut =head1 METHODS This package implements the following methods. =cut =head2 execute execute() : Object Executes the function logic and returns the result. =over 4 =item execute example my $data = Data::Object::String->new("hello world"); my $func = Data::Object::Func::String::Camelcase->new( arg1 => $data ); my $result = $func->execute; =back =cut =head2 mapping mapping() : (Str) Returns the ordered list of named function object arguments. =over 4 =item mapping example my @data = $self->mapping; =back =cut =head1 AUTHOR Al Newkirk, C<awncorp@cpan.org> =head1 LICENSE Copyright (C) 2011-2019, Al Newkirk, et al. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =head1 PROJECT L<GitHub|https://github.com/iamalnewkirk/do> L<Contributing|https://github.com/iamalnewkirk/do/blob/master/README-DEVEL.mkdn> L<Reporting|https://github.com/iamalnewkirk/do/issues> =head1 SEE ALSO To get the most out of this distribution, consider reading the following: L<Data::Object::Class> L<Data::Object::Role> L<Data::Object::Rule> L<Data::Object::Library> L<Data::Object::Signatures> =cut