Chores:
- Add support for Ruby 3.2, 3.3, and 3.4
- Deprecate support for Ruby 2.6, 2.7, 3.0, and 3.1
Bug Fixes:
- Correct method visibility for
Expression::RangeInYear(@joeltjames)
Changes:
- Support pattern matching for
ExpressionandSchedule - Support more recent versions of sorbet
Changes:
- Add sorbet for type checking
Bug Fixes:
- Ensure
first_occurrenceis never part of#to_houtput forExpression::Biweekly
Chores:
- Add support for Ruby 3.1
- Deprecate support for Ruby 2.5
Breaking Changes:
- Change
Expression::DayInMonthto take negative numbers instead of special:lastsymbol (or string) - Stop including
Conversionsin top level namespace (must now be accessed viaRepeatable::Conversions::Date()or by callinginclude Repeatable::Conversionsin whatever namespace(s) it's needed) - Require Ruby 2.5.0 or greater
Changes:
- Flatten nested
Expression::Unionelements during initialization (@cmoel) - Flatten nested
Expression::Intersectionelements during initialization
Chores:
- Add support for Ruby 2.5, 2.6, 2.7, 3.0
- Introduce standard for code formatting
Features:
- Add
Expression::Differencefor set differences between 2 schedules (@danott) - Allow
Expression::DayInMonthto take:last(or'last') for itsday:argument (@PatrickLerner) - Allow
Expression::WeekdayInMonthto take negativecountargument for last, second-to-last, etc. of a given weekday (@danielma)
Bug Fixes:
- Fix
Expression::RangeInYearto properly handle usingstart_dayandend_daywhenstart_month == end_month(@danielma)
Features:
- Add
Expression::Biweeklyfor "every other week" recurrence
Features:
- Define equivalence
#==forExpressionandScheduleobjects - Define hash equality
#eql?forExpression::Dateobjects - Remove
ActiveSupportdependency
Features:
- Ensure
end_dateon or afterstart_dateforSchedule#occurrences(@danott) - Consider any invalid argument to
Schedule.newaParseError(@danott)
Features:
- Add
ParseErrorclass for better error handling - Extract
Parserclass fromSchedule
Bug Fixes:
- Enable
Scheduleto take a hash with string keys
Features:
- Add
Schedule#to_handExpression#to_hmethods - Enable building a
Schedulefrom composedExpressionobjects
Bug Fixes:
- Fix default case equality for
Expression::Baseto work with classes and instances
Initial Release