autobox::String::Inflector - Rails like String Inflector


autobox-String-Inflector documentation Contained in the autobox-String-Inflector distribution.

Index


Code Index:

NAME

Top

autobox::String::Inflector - Rails like String Inflector

SYNOPSIS

Top

  use autobox::String::Inflector;

  print 'users'->singularize->camelize; # User

  print 'Entry'->decamelize->pluralize; # entries

DESCRIPTION

Top

autobox::String::Inflector is Rails like String Inflector.

AUTHOR

Top

Ryuta Kamizono <kamipo@gmail.com>

SEE ALSO

Top

LICENSE

Top

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


autobox-String-Inflector documentation Contained in the autobox-String-Inflector distribution.

package autobox::String::Inflector;

use strict;
use warnings;
our $VERSION = '0.01';

use base qw(autobox);

sub import {
    shift->SUPER::import(STRING => 'autobox::String::Inflector::Impl', @_);
}

package # hide from pause
    autobox::String::Inflector::Impl;

use String::CamelCase qw(camelize decamelize);
use Lingua::EN::Inflect::Number ();

*pluralize = \&Lingua::EN::Inflect::Number::to_PL;

sub singularize {
    local $_ = shift;
    return $_ if s/(alias|status)es$/$1/i;
    return Lingua::EN::Inflect::Number::to_S($_);
}

1;
__END__