Class: IceCube::ValidatedRule
- Inherits:
-
Rule
- Object
- Rule
- IceCube::ValidatedRule
- Includes:
- IceCube::Validations::Count, IceCube::Validations::Day, IceCube::Validations::DayOfMonth, IceCube::Validations::DayOfWeek, IceCube::Validations::DayOfYear, IceCube::Validations::HourOfDay, IceCube::Validations::MinuteOfHour, IceCube::Validations::MonthOfYear, IceCube::Validations::ScheduleLock, IceCube::Validations::SecondOfMinute, IceCube::Validations::Until
- Defined in:
- lib/ice_cube/validated_rule.rb
Direct Known Subclasses
DailyRule, HourlyRule, MinutelyRule, MonthlyRule, SecondlyRule, WeeklyRule, YearlyRule
Constant Summary
- VALIDATION_ORDER =
Validations ordered for efficiency in sequence of:
-
descending intervals
-
boundary limits
-
base values by cardinality (n = 60, 60, 31, 24, 12, 7)
-
locks by cardinality (n = 365, 60, 60, 31, 24, 12, 7)
-
interval multiplier
-
[ :year, :month, :day, :wday, :hour, :min, :sec, :count, :until, :base_sec, :base_min, :base_day, :base_hour, :base_month, :base_wday, :day_of_year, :second_of_minute, :minute_of_hour, :day_of_month, :hour_of_day, :month_of_year, :day_of_week, :interval ]
Constants included from IceCube::Validations::Lock
IceCube::Validations::Lock::INTERVALS
Instance Attribute Summary
Attributes inherited from Rule
Instance Method Summary (collapse)
-
- (Object) clobber_base_validations(*types)
Remove the specified base validations.
-
- (ValidatedRule) initialize(interval = 1)
constructor
A new instance of ValidatedRule.
-
- (Object) next_time(time, schedule, closing_time)
Compute the next time after (or including) the specified time in respect to the given schedule.
-
- (Object) replace_validations_for(key, arr)
Fully replace validations.
- - (Object) to_hash
- - (Object) to_ical
- - (Object) to_s
-
- (Object) validations_for(key)
Get the collection that contains validations of a certain type.
Methods included from IceCube::Validations::Until
Methods included from Deprecated
#deprecated, #deprecated_alias
Methods included from IceCube::Validations::Count
Methods included from IceCube::Validations::DayOfYear
Methods included from IceCube::Validations::MonthOfYear
Methods included from IceCube::Validations::Day
Methods included from IceCube::Validations::DayOfWeek
Methods included from IceCube::Validations::DayOfMonth
Methods included from IceCube::Validations::Lock
Methods included from IceCube::Validations::SecondOfMinute
Methods included from IceCube::Validations::MinuteOfHour
Methods included from IceCube::Validations::HourOfDay
Methods included from IceCube::Validations::ScheduleLock
Methods inherited from Rule
#==, daily, from_hash, from_yaml, #full_required?, #hash, hourly, minutely, monthly, #on?, #reset, secondly, #terminating?, #to_yaml, weekly, yearly
Constructor Details
- (ValidatedRule) initialize(interval = 1)
A new instance of ValidatedRule
33 34 35 |
# File 'lib/ice_cube/validated_rule.rb', line 33 def initialize(interval = 1, *) @validations = Hash.new end |
Instance Method Details
- (Object) clobber_base_validations(*types)
Remove the specified base validations
94 95 96 97 98 |
# File 'lib/ice_cube/validated_rule.rb', line 94 def clobber_base_validations(*types) types.each do |type| @validations.delete(:base_#{type}") end end |
- (Object) next_time(time, schedule, closing_time)
Compute the next time after (or including) the specified time in respect to the given schedule
39 40 41 42 43 44 45 46 47 |
# File 'lib/ice_cube/validated_rule.rb', line 39 def next_time(time, schedule, closing_time) @time = time @schedule = schedule return nil unless find_acceptable_time_before(closing_time) @uses += 1 if @time @time end |
- (Object) replace_validations_for(key, arr)
Fully replace validations
85 86 87 88 89 90 91 |
# File 'lib/ice_cube/validated_rule.rb', line 85 def replace_validations_for(key, arr) if arr.nil? @validations.delete(key) else @validations[key] = arr end end |
- (Object) to_hash
59 60 61 62 63 64 65 66 67 |
# File 'lib/ice_cube/validated_rule.rb', line 59 def to_hash builder = HashBuilder.new(self) @validations.each do |name, validations| validations.each do |validation| validation.build_hash(builder) end end builder.to_hash end |
- (Object) to_ical
69 70 71 72 73 74 75 76 77 |
# File 'lib/ice_cube/validated_rule.rb', line 69 def to_ical builder = IcalBuilder.new @validations.each do |name, validations| validations.each do |validation| validation.build_ical(builder) end end builder.to_s end |
- (Object) to_s
49 50 51 52 53 54 55 56 57 |
# File 'lib/ice_cube/validated_rule.rb', line 49 def to_s builder = StringBuilder.new @validations.each do |name, validations| validations.each do |validation| validation.build_s(builder) end end builder.to_s end |
- (Object) validations_for(key)
Get the collection that contains validations of a certain type
80 81 82 |
# File 'lib/ice_cube/validated_rule.rb', line 80 def validations_for(key) @validations[key] ||= [] end |