@@ -12,26 +12,24 @@ class Monthly < Base # :nodoc: all
1212
1313 private def validate
1414 if @options . key? ( :weekday )
15-
1615 # Allow :on => :last, :weekday => :thursday contruction.
1716 if @options [ :on ] . to_s == "last"
1817 @options [ :on ] = 5
1918 elsif @options [ :on ] . is_a? ( Numeric )
20- valid_week? ( @options [ :on ] )
19+ validate_week ( @options [ :on ] )
2120 else
22- valid_ordinal? ( @options [ :on ] )
21+ validate_ordinal ( @options [ :on ] )
2322 @options [ :on ] = ORDINALS . index ( @options [ :on ] . to_s ) + 1
2423 end
2524
26- @options [ :weekday ] =
27- valid_weekday_or_weekday_name? ( @options [ :weekday ] )
25+ @options [ :weekday ] = expand_weekday! ( @options [ :weekday ] )
2826 else
29- valid_month_day? ( @options [ :on ] )
27+ validate_month_day ( @options [ :on ] )
3028 end
3129
3230 return unless @options [ :interval ] . is_a? ( Symbol )
3331
34- valid_interval? ( @options [ :interval ] )
32+ validate_interval ( @options [ :interval ] )
3533 @options [ :interval ] = INTERVALS [ @options [ :interval ] ]
3634 end
3735
@@ -40,7 +38,7 @@ class Monthly < Base # :nodoc: all
4038
4139 type = @options . key? ( :weekday ) ? :weekday : :monthday
4240
43- class_eval <<-METHOD , __FILE__ , __LINE__ + 1
41+ singleton_class . class_eval <<-METHOD , __FILE__ , __LINE__ + 1
4442 # private def next_month
4543 # if initialized?
4644 # advance_to_month_by_weekday(@date)
@@ -105,23 +103,25 @@ class Monthly < Base # :nodoc: all
105103 end
106104
107105 private def shift_to ( date )
108- @options [ :on ] = date . day
106+ @options [ :on ] = date . day unless @options [ :weekday ]
109107 end
110108
111- private def valid_ordinal? ( ordinal )
109+ private def validate_ordinal ( ordinal )
112110 return if ORDINALS . include? ( ordinal . to_s )
113111
114- raise ArgumentError , "invalid ordinal #{ ordinal } "
112+ raise ArgumentError , "invalid ordinal: #{ ordinal } "
115113 end
116114
117- private def valid_interval? ( interval )
115+ private def validate_interval ( interval )
118116 return if INTERVALS . key? ( interval )
119117
120- raise ArgumentError , "invalid ordinal #{ interval } "
118+ raise ArgumentError , "invalid ordinal: #{ interval . inspect } "
121119 end
122120
123- private def valid_week? ( week )
124- raise ArgumentError , "invalid week #{ week } " unless ( 1 ..5 ) . cover? ( week )
121+ private def validate_week ( week )
122+ return if ( 1 ..5 ) . cover? ( week )
123+
124+ raise ArgumentError , "invalid week: #{ week . inspect } "
125125 end
126126 end
127127 end
0 commit comments