Class: Cronline::CronField
- Inherits:
-
Object
- Object
- Cronline::CronField
show all
- Defined in:
- lib/cronline/cron_field.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(field_expression, absolute_min, absolute_max) ⇒ CronField
Returns a new instance of CronField.
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/cronline/cron_field.rb', line 11
def initialize(field_expression, absolute_min, absolute_max)
@absolute_min = absolute_min
@absolute_max = absolute_max
if field_expression == CronField.wildcard
@wild = true
@range = Integer(absolute_min)..Integer(absolute_max)
elsif field_expression.include?('-')
min = Integer(field_expression.split('-')[0])
max = Integer(field_expression.split('-')[1])
@range = min..max
elsif field_expression.include?(',')
@range = field_expression.split(',').map do |number_expression|
Integer(number_expression)
end
elsif field_expression.include?('/')
increment_start = field_expression.split('/')[0]
increment_step = field_expression.split('/')[1]
@range = (Integer(increment_start)..absolute_max).step(Integer(increment_step))
elsif field_expression == '?'
@range = []
elsif field_expression[-1, 1] == 'L'
@range = [Integer(field_expression.sub!('L', ''))]
else
@range = [Integer(field_expression)]
end
end
|
Class Method Details
.wildcard ⇒ Object
7
8
9
|
# File 'lib/cronline/cron_field.rb', line 7
def self.wildcard
'*'
end
|
Instance Method Details
#range(time = nil) ⇒ Object
45
46
47
|
# File 'lib/cronline/cron_field.rb', line 45
def range(time = nil)
@range
end
|
#test?(time) ⇒ Boolean
49
50
51
|
# File 'lib/cronline/cron_field.rb', line 49
def test?(time)
range(time).include?(time_field(time))
end
|
#time_field(time) ⇒ Object
53
54
55
|
# File 'lib/cronline/cron_field.rb', line 53
def time_field(time)
fail 'time_field must be implemented'
end
|