Chores:
- Add support for Ruby 3.2 and 3.3
- Deprecate support for Ruby 2.6, 2.7, and 3.0
Changes:
- Support pattern matching for
Expression
andSchedule
- Support more recent versions of sorbet
Changes:
- Add sorbet for type checking
Bug Fixes:
- Ensure
first_occurrence
is never part of#to_h
output forExpression::Biweekly
Chores:
- Add support for Ruby 3.1
- Deprecate support for Ruby 2.5
Breaking Changes:
- Change
Expression::DayInMonth
to take negative numbers instead of special:last
symbol (or string) - Stop including
Conversions
in top level namespace (must now be accessed viaRepeatable::Conversions::Date()
or by callinginclude Repeatable::Conversions
in whatever namespace(s) it's needed) - Require Ruby 2.5.0 or greater
Changes:
- Flatten nested
Expression::Union
elements during initialization (@cmoel) - Flatten nested
Expression::Intersection
elements during initialization
Chores:
- Add support for Ruby 2.5, 2.6, 2.7, 3.0
- Introduce standard for code formatting
Features:
- Add
Expression::Difference
for set differences between 2 schedules (@danott) - Allow
Expression::DayInMonth
to take:last
(or'last'
) for itsday:
argument (@PatrickLerner) - Allow
Expression::WeekdayInMonth
to take negativecount
argument for last, second-to-last, etc. of a given weekday (@danielma)
Bug Fixes:
- Fix
Expression::RangeInYear
to properly handle usingstart_day
andend_day
whenstart_month == end_month
(@danielma)
Features:
- Add
Expression::Biweekly
for "every other week" recurrence
Features:
- Define equivalence
#==
forExpression
andSchedule
objects - Define hash equality
#eql?
forExpression::Date
objects - Remove
ActiveSupport
dependency
Features:
- Ensure
end_date
on or afterstart_date
forSchedule#occurrences
(@danott) - Consider any invalid argument to
Schedule.new
aParseError
(@danott)
Features:
- Add
ParseError
class for better error handling - Extract
Parser
class fromSchedule
Bug Fixes:
- Enable
Schedule
to take a hash with string keys
Features:
- Add
Schedule#to_h
andExpression#to_h
methods - Enable building a
Schedule
from composedExpression
objects
Bug Fixes:
- Fix default case equality for
Expression::Base
to work with classes and instances
Initial Release