Rather than walk you through the entire API, let me share with you some of the methods from this library that I think will be interesting to you.
str.capitalize( "my post title" ); // "My post title"
Super simple function but annoying to write over and over again. Glad I don't have to write myself it again anymore.
str.capitalizeWords( "my post title" ); // "My Post Title"
I've always been jealous of the built in
ucwords in PHP. Well, this method
makes that jealousy obsolete.
str.startsWith( "getDynamicMethod", "get" ); // true str.startsWith( "setDynamicMethod", "get" ); // false
Even more simple than the last one, it's implemented in the source code as follows:
return left( word, len( substring ) ) == substring;. But this is such an
improvement in readability!
str.slug( "My Post Title", "-" ); // "my-post-title"
slug is actually the method that powers a whole slew of case transformations in
str such as
str.plural( "entity" ); // "entities" str.plural( "tree", 1 ); // "tree"
I saved the best for last here. This will handle the edge cases around pluralizing nouns for you. You're welcome.
Benefits of a shared utility library
Before we end, let's address a common concern I've heard:
I could write all those utilities myself! Why rely on a third party library for it?
Let me give you three reasons:
A shared utility library is likely to have a good test suite. This isn't to say that your utilities aren't tested. But by having the library used by more people in more situations, it is more battle-tested and ready for your next project.
One command installs and updates
When you need your own hand-written utility, you go find the repo or find the code in another project and copy and paste it over. Conversely, you could spend a few seconds typing an install slug in to CommandBox and be done. Additionally, when there are updates to the library, whether new features or bug fixes, all of the places that use the shared library can be updated via CommandBox. The alternative? A frantic find and replace.
Familiarity between developers
str is one of many utility libraries on ForgeBox. Next time you need a utility,
first check on ForgeBox. You might find you don't need to write it yourself. You
may find a library that could use a pull request from you. Or you may find an
opportunity to share your own utlities with the rest of us.