+1! I've just read the documentation and it's clear and elegant. Great job! Really looking forward to seeing it integrated! It's a very nice and needed addition to the GDK :-)
Guillaume On Sun, Mar 18, 2018 at 6:03 AM, Paul King <pa...@asert.com.au> wrote: > Looks good at first glance. Please go ahead with the PR. > > On 18 Mar. 2018 5:37 am, "Joe Wolf" <joew...@gmail.com> wrote: > >> Here's a first stab at the documentation for the Date/Time API >> extensions: http://bdkosher.github.io/groovy-3.0-alpha/html5 >> /#_working_with_date_time_types >> >> And in writing the documentation (as with writing unit tests), I got >> feedback, prompting some minor changes: >> >> 1) using the DateTimeFormatter.ISO* formatters for implementing >> getDateString(), getTimeString(), and getDateTimeString() instead of >> using a localized FormatStyle.SHORT style. Besides making it easier to >> document examples, I personally prefer "2018-03-17" to "3/17/18", even as >> an American. >> >> 2) changing the behavior of the upto method (and downto) so that, when >> using a custom unit of iteration that prevents the start value from being >> incremented exactly to the end value, the method returns as soon as the >> current value becomes strictly later than the end value. In my first stab >> at it, the method returned when the current iteration value became later >> than the end value _by at least one unit_. As a result, the closure could >> be called with a value later than the end parameter, which seemed >> undesirable. e.g. >> >> def from = LocalDate.of(2018, Month.MARCH, 1) >> def to = LocalDate.of(2018, Month.MARCH, 2) >> >> from.upto(to, ChronoUnit.MONTH) { date -> // iterate by one month at a >> time >> println date >> } >> >> would print >> >> 2018-03-01 >> 2018-04-01 >> >> This was because April 1st is less than a month after March 2nd: >> march2nd.until(april1st, >> ChronoUnit.MONTH) == 0, as explained in the docs >> https://docs.oracle.com/javase/8/docs/api/java/time/tem >> poral/Temporal.html#until-java.time.temporal.Temporal-java. >> time.temporal.TemporalUnit- >> >> Anyways, the updated GDK docs are here, temporarily: http://bdkosher.g >> ithub.io/groovy-3.0-alpha/groovy-jdk/ >> >> Barring any substantial disagreement with inclusions or exclusions, I can >> submit a PR and where we can discuss any minor implementation or >> documentation details. >> >> -Joe >> >> On Mon, Feb 19, 2018 at 11:26 AM, Guillaume Laforge <glafo...@gmail.com> >> wrote: >> >>> Sounds awesome! >>> Anyhow, I already like what I see, those methods sound very useful to me! >>> >>> On Mon, Feb 19, 2018 at 4:37 PM, Joe Wolf <joew...@gmail.com> wrote: >>> >>>> Good idea--I should have thought of that earlier! I'll draft up some >>>> documentation in a new section of the core-gdk.adoc file and post a link >>>> for review. >>>> >>>> -Joe >>>> >>>> On Mon, Feb 19, 2018 at 4:50 AM, Guillaume Laforge <glafo...@gmail.com> >>>> wrote: >>>> >>>>> This looks very complete, at first sight, that's really wonderful! >>>>> I'm really looking forward to seeing that integrated. >>>>> >>>>> Did you also have a pointer to a doc / page / blog which shows those >>>>> methods in action? >>>>> (which we could potentially add to our online documentation) >>>>> >>>>> Guillaume >>>>> >>>>> On Mon, Feb 19, 2018 at 12:16 AM, Joe Wolf <joew...@gmail.com> wrote: >>>>> >>>>>> I've finally gotten around to adding extension methods to the Groovy >>>>>> JDK for the java.time types. See https://issues.apache.org/ >>>>>> jira/browse/GROOVY-8334 for reference. >>>>>> >>>>>> I've generated a copy of the Groovy JDK apidocs with my current >>>>>> changes here: http://bdkosher.github.io/groovy-3.0-alpha/groovy-jdk/ >>>>>> <http://bdkosher.github.io/groovy-3.0-alpha/groovy-jdk/> >>>>>> >>>>>> The additions are in the java.time and java.time.temporal packages, >>>>>> obviously, as well as some "since 3.0" methods in java.util.Date and >>>>>> java.util.Calendar >>>>>> >>>>>> I thought it was worthwhile to open up these API changes for >>>>>> discussion here before submitting a PR. There may be things included >>>>>> which >>>>>> should not be or things not included that should. >>>>>> >>>>>> -Joe >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Guillaume Laforge >>>>> Apache Groovy committer & PMC Vice-President >>>>> Developer Advocate @ Google Cloud Platform >>>>> >>>>> Blog: http://glaforge.appspot.com/ >>>>> Social: @glaforge <http://twitter.com/glaforge> / Google+ >>>>> <https://plus.google.com/u/0/114130972232398734985/posts> >>>>> >>>> >>>> >>> >>> >>> -- >>> Guillaume Laforge >>> Apache Groovy committer & PMC Vice-President >>> Developer Advocate @ Google Cloud Platform >>> >>> Blog: http://glaforge.appspot.com/ >>> Social: @glaforge <http://twitter.com/glaforge> / Google+ >>> <https://plus.google.com/u/0/114130972232398734985/posts> >>> >> >> -- Guillaume Laforge Apache Groovy committer & PMC Vice-President Developer Advocate @ Google Cloud Platform Blog: http://glaforge.appspot.com/ Social: @glaforge <http://twitter.com/glaforge> / Google+ <https://plus.google.com/u/0/114130972232398734985/posts>