Stephan, On that note, I worked on the initial implementation for PR 450, and had to pause for work but am planning to resume soon, but definitely contribute and/or provide any thoughts as it's definitely a big change from the current CaseUtils.
Regards, Dan On Wed, Apr 10, 2024, 9:20 PM Stephan Peters <stephan.pet...@csuglobal.edu.invalid> wrote: > Gary, thank you for your response. > > I initiated the pull request (#528) and already received some very > constructive feedback from user mbenson. > I am modifying the code to contain fewer methods that may be externally > modified by a user, if something as simple as .toLowerCase() is required. > > I also noticed some recent discussion of this which you commented on in > pull 450 Cases API + 4 implementations (Pascal, Camel, Kebab, Snake) #450 > > When I am done with the edits and new tests and pushed them to my fork, I > may join this conversation #450. > > My Jira account has been approved (after an initial disapproval.) I haven't > looked at it yet, I will look for similar topics there. > > I also uncovered an issue with my code when I devised some tests I > specifically designed to break it if possible, and I need to fix this. > > assertThat(CaseUtils.toTitleCase(" ' \u2019 Titl'e Case \u2019 ' > ")).isEqualTo("Title_Case"); // todo fix this failure. > > org.opentest4j.AssertionFailedError: > expected: "Title_Case" > but was: "Title_Case_’_'" > Expected :"Title_Case" > Actual :"Title_Case_’_'" > > This is because of the way I handle apostrophes so "That's good!" will > return "Thats_Good" > > Again, thank you for your response. > > Stephan Peters > > > On Tue, Apr 9, 2024 at 5:56 PM Stephan Peters < > stephan.pet...@csuglobal.edu> > wrote: > > > OK, I will initiate a PR. > > Some of the added methods will be more useful than others. > > The PR will come from speters33w. > > > > Thank you, > > Stephan Peters > > > > On Tue, Apr 9, 2024 at 5:31 PM Gary Gregory <garydgreg...@gmail.com> > > wrote: > > > >> Hello Stephan, > >> > >> The best way to see what you are proposing is a PR, it's a bit painful > to > >> see differences otherwise, at least for me. > >> > >> That said anything new should solve a real world use case, not merely > >> something that might be useful (or not) 😉 > >> > >> I think seeing tests in a PR will help clarify what it is you are > >> proposing > >> that the current code doesn't do. > >> > >> See also also https://github.com/apache/commons-text/pull/450 > >> > >> TY, > >> Gary > >> > >> On Tue, Apr 9, 2024, 4:37 PM Stephan Peters > >> <stephan.pet...@csuglobal.edu.invalid> wrote: > >> > >> > I added several methods to the org.apache.commons.CaseUtils class I > >> think > >> > would be very useful, for example to use for normalized naming > >> conventions > >> > for file paths, file names, URLs, etc. > >> > > >> > I'm planning on initiating a pull request. > >> > > >> > I would like to discuss it here. > >> > > >> > I've posted it in a fork here: > >> > > >> > > >> > https://github.com/speters33w/commons-text/blob/master/src/main/java/org/apache/commons/text/CaseUtils.java > >> > > >> > and written new tests for all the methods that pass here: > >> > > >> > > >> > https://github.com/speters33w/commons-text/blob/master/src/test/java/org/apache/commons/text/CaseUtilsTest.java > >> > > >> > There is an example of the method return values at the top of the > >> revised > >> > CaseUtils.java. > >> > > >> > The methods have a little different behavior than the existing > >> > toCamelCase(String, boolean, char[]) (which I left intact) in that > they > >> > normalize the input first before processing, so toCamelSnakeCase("The > >> > café’s piñata gave me déjà vu.") will return > >> > "the_Cafes_Pinata_Gave_Me_Deja_Vu" > >> > > >> > The main driver engine is in the toTitleCase() method and the rest of > >> the > >> > methods piggyback on that engine and perform minor changes to the > return > >> > value. > >> > > >> > If anyone feels like taking a look, I'd appreciate any feedback. > >> > > >> > Thank you. > >> > > >> > Stephan Peters > >> > > >> > > >