我正在使用Ruby on Rails构建一个简单的应用程序来跟踪商店的开放和关闭时间及其约会,而且我在商店的日程安排中验证关闭约会时遇到了一些麻烦。
我一直在使用Runt来制定时间表。例如,如果商店周一早上从上午9点到下午12点营业,午餐时间关闭一小时,然后下午营业到下午5点,那就是:
require 'runt'
include Runt
monday = DIWeek.new(Mon)
morning = REDay.new(9,00,12,00)
afternoon = REDAy.new(13,00,17,00)
expr = monday & morning & afternoon
对于给定的约会(也是Runt Temporal Expression),如何确保约会 与开放时间重叠,不重叠午餐时间(或在开放时间之前或之后的其他时间)?
我认为Runt有重叠吗?方法,但如果我做了类似的事情:
expr.overlaps?(DIWeek.new(Mon) & REDay.new(10,00,11,00)) # the appointment is from 10-11am on Monday and should overlap the morning opening time
我收到此错误:
NoMethodError: undefined method `overlaps?' for #<Runt::Intersect:0x10483cc>
任何人都可以告诉我如何纠正这个错误或者另一种解决这个问题的方法吗?
答案 0 :(得分:1)
重叠?方法仅在Runt :: Collection和Runt :: DateRange上定义。也许您可以从expr创建一个DateRange对象,然后运行重叠?在它上面。