DateSlash
DateSlash adds a Ruby refinement that makes year/month/day expressions readable with /.
using DateSlash
2026 / 8
# => 253
2026 / 8 / 18
# => #<Date: 2026-08-18 ...>
The first / returns an intermediate object that still behaves like the integer quotient of year / month. The second / converts that intermediate value into a Date only when the expression has exactly three terms and they form a valid calendar date.
Installation
Add the gem to your application:
bundle add dateslash
Or install it directly:
gem install dateslash
Usage
Require the gem and enable the refinement in the scope where you want to use it.
require "dateslash"
using DateSlash
date = 2026 / 8 / 18
date.class
# => Date
prefix = 2026 / 8
prefix.to_i
# => 253
The refinement only applies when the left-hand side is a four-digit year, the month is from 1 to 12, and the complete date is valid. Invalid dates and expressions with four or more terms keep Ruby's normal division behavior.
using DateSlash
10 / 2
# => 5
2026 / 13
# => 155
2026 / 2 / 29
# => 34
2026 / 8 / 18 / 2
# => 7
Development
After checking out the repo, run:
bin/setup
bundle exec rake test
You can also use bin/console to try the refinement interactively.
To install the gem locally:
bundle exec rake install
To release a new version, update lib/dateslash/version.rb and run:
bundle exec rake release
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in this project is expected to follow the code of conduct in CODE_OF_CONDUCT.md.