lib/repeatable/schedule.rb in repeatable-0.1.0 vs lib/repeatable/schedule.rb in repeatable-0.2.0

- old
+ new

@@ -1,11 +1,18 @@ require 'active_support/core_ext/string/inflections' module Repeatable class Schedule def initialize(args) - @expression = build_expression(args) + case args + when Hash + @expression = build_expression(args) + when Repeatable::Expression::Base + @expression = args + else + fail ArgumentError, "Can't build a Repeatable::Schedule from #{args.class}" + end end def occurrences(start_date, end_date) start_date = Date(start_date) end_date = Date(end_date) @@ -21,9 +28,13 @@ end def include?(date = Date.today) date = Date(date) expression.include?(date) + end + + def to_h + expression.to_h end private attr_reader :expression