taskloop 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/taskloop/command/deploy.rb +3 -4
  4. data/lib/taskloop/command/init.rb +10 -8
  5. data/lib/taskloop/command/list.rb +10 -8
  6. data/lib/taskloop/dsl/dsl.rb +16 -5
  7. data/lib/taskloop/extension/integer_extension.rb +0 -4
  8. data/lib/taskloop/rules/after_scope_rule.rb +36 -45
  9. data/lib/taskloop/rules/before_scope_rule.rb +36 -45
  10. data/lib/taskloop/rules/between_scope_rule.rb +51 -60
  11. data/lib/taskloop/rules/boundary_rule.rb +21 -0
  12. data/lib/taskloop/rules/date_list_rule.rb +0 -4
  13. data/lib/taskloop/rules/default_rule.rb +0 -4
  14. data/lib/taskloop/rules/end_point_boundary_rule.rb +21 -0
  15. data/lib/taskloop/rules/interval_rule.rb +0 -4
  16. data/lib/taskloop/rules/loop_rule.rb +0 -4
  17. data/lib/taskloop/rules/rule.rb +2 -4
  18. data/lib/taskloop/rules/specific_rule.rb +25 -32
  19. data/lib/taskloop/rules/start_point_boundary_rule.rb +21 -0
  20. data/lib/taskloop/rules/time_list_rule.rb +0 -4
  21. data/lib/taskloop/task/task.rb +20 -7
  22. data/lib/taskloop/task/task_property.rb +121 -45
  23. data/lib/taskloop/version.rb +1 -1
  24. data/sig/integer.rbs +11 -0
  25. data/sig/string.rbs +7 -0
  26. data/sig/task_loop/after_scope_rule.rbs +11 -0
  27. data/sig/task_loop/before_scope_rule.rbs +11 -0
  28. data/sig/task_loop/between_scope_rule.rbs +14 -0
  29. data/sig/task_loop/boundary_rule.rbs +9 -0
  30. data/sig/task_loop/date_list_rule.rbs +11 -0
  31. data/sig/task_loop/default_rule.rbs +8 -0
  32. data/sig/task_loop/deploy.rbs +18 -0
  33. data/sig/task_loop/dsl.rbs +25 -0
  34. data/sig/task_loop/end_point_boundary_rule.rbs +9 -0
  35. data/sig/task_loop/env.rbs +13 -0
  36. data/sig/task_loop/init.rbs +5 -0
  37. data/sig/task_loop/interval_rule.rbs +9 -0
  38. data/sig/task_loop/launch.rbs +12 -0
  39. data/sig/task_loop/list.rbs +9 -0
  40. data/sig/task_loop/log.rbs +11 -0
  41. data/sig/task_loop/loop_rule.rbs +9 -0
  42. data/sig/task_loop/proj_task_list.rbs +5 -0
  43. data/sig/task_loop/rule.rbs +11 -0
  44. data/sig/task_loop/run.rbs +11 -0
  45. data/sig/task_loop/scope_rule.rbs +9 -0
  46. data/sig/task_loop/shutdown.rbs +7 -0
  47. data/sig/task_loop/specific_rule.rbs +11 -0
  48. data/sig/task_loop/start_point_boundary_rule.rbs +9 -0
  49. data/sig/task_loop/task.rbs +34 -0
  50. data/sig/task_loop/task_data_file.rbs +23 -0
  51. data/sig/task_loop/task_property.rbs +83 -0
  52. data/sig/task_loop/time_list_rule.rbs +13 -0
  53. data/sig/task_loop/undeploy.rbs +7 -0
  54. metadata +35 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6395f4580c66f3deef3ec7a0a6103083b7d1b3a608c68cc0b878ad0a496c0116
4
- data.tar.gz: 8775908ba3ac44c34dd23435e5159e52fab16d7901ff970d0a3d2af7ccc3e8d4
3
+ metadata.gz: fe54ad9d9bfec60de30dcda7607bae029880697f8e3300f3d8f5ca720d1e3b61
4
+ data.tar.gz: 1963fb584f8fbb3fdde0d72008a19a3c8568c0b4fe3dc5939a3df22360370cee
5
5
  SHA512:
6
- metadata.gz: d2e8aa350458c9d9538cc339fbfd93f820fc3abdfcc4d905178d757805d9cafda6042c5049b12033ca84814fcd1f8d2111bc890c23de5b8785fb180553980dd2
7
- data.tar.gz: fc4513b7568acc4789af5b39d73b31b28039bae7885b9ff70c838fc00f810fc9d501eba9041c540026da02224c8ba3763988d9fa7f39d8dc9157eb0ec0dc771e
6
+ metadata.gz: 534de276e8ced9600bbecc3f7a07a4de578d3addee053ddcacacad7b284e9e59b40f9bde0cd309a2075e0f5ff3692f8c2fc38a9ff08ccedabfae933c792d5e52
7
+ data.tar.gz: 529cdbe0ea94872d8960fba3a1b7eba0520d5bd2b0d09ae5f1319c698b20fc63c9d6acb957c0f239e0958e58f0f908531c26caed504956b6c4ae73eaf70f51e4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- taskloop (0.1.0)
4
+ taskloop (0.2.0)
5
5
  claide (~> 1.0.3)
6
6
 
7
7
  GEM
@@ -13,6 +13,9 @@ module TaskLoop
13
13
  require_relative '../rules/loop_rule'
14
14
  require_relative '../rules/date_list_rule'
15
15
  require_relative '../rules/time_list_rule'
16
+ require_relative '../rules//boundary_rule'
17
+ require_relative '../rules/start_point_boundary_rule'
18
+ require_relative '../rules/end_point_boundary_rule'
16
19
  require_relative '../extension/string_extension'
17
20
  require_relative '../extension/integer_extension'
18
21
  require_relative '../dsl/dsl'
@@ -62,10 +65,6 @@ module TaskLoop
62
65
  json_string = File.read(taskloop_proj_list_path)
63
66
  parsed_json = JSON.parse(json_string)
64
67
  # check if all the registered path
65
- push_taskfile_dir_if_needed(parsed_json)
66
- end
67
-
68
- private def push_taskfile_dir_if_needed(parsed_json)
69
68
  proj_dir = Dir.pwd
70
69
  duplicate = parsed_json.select { |path| path == proj_dir }
71
70
  if duplicate.empty?
@@ -25,14 +25,16 @@ module TaskLoop
25
25
  # env "ENV_NAME", "ENV_VALUE"
26
26
 
27
27
  TaskLoop::Task.new do |t|
28
- t.name = 'TODO: task name. <Required>'
29
- t.path = 'TODO: task job path. For exmaple, t.path = "./Job.sh". <Required>'
30
- t.year = "TODO: year rule. <Optional>"
31
- t.month = "TODO: month rule. <Optional>"
32
- t.day = "TODO: day rule. <Optional>"
33
- t.hour = "TODO: hour rule. <Optional>"
34
- t.minute = "TODO: minute rule. <Optional>"
35
- t.loop = "TODO: loop count. <Optional>"
28
+ t.name = 'TODO: task name. <Required>'
29
+ t.path = 'TODO: task job path. For exmaple, t.path = "./Job.sh". <Required>'
30
+ t.year = "TODO: year rule. <Optional>"
31
+ t.month = "TODO: month rule. <Optional>"
32
+ t.day = "TODO: day rule. <Optional>"
33
+ t.hour = "TODO: hour rule. <Optional>"
34
+ t.minute = "TODO: minute rule. <Optional>"
35
+ t.loop = "TODO: loop count. <Optional>"
36
+ t.start_point = "TODO: start point boundary rule. <Optional"
37
+ t.end_point = "TODO: start point boundary rule. <Optional"
36
38
  end
37
39
  DESC
38
40
  file.puts content
@@ -44,14 +44,16 @@ module TaskLoop
44
44
  puts "Tasks above are defined in Taskfile of <#{proj}>".ansi.blue
45
45
  list.each do |task|
46
46
  puts " #{task.desc}".ansi.blue
47
- puts " t.name = #{task.name}".ansi.blue
48
- puts " t.path = #{task.path}".ansi.blue
49
- puts " t.year = #{task.year.desc}".ansi.blue
50
- puts " t.month = #{task.month.desc}".ansi.blue
51
- puts " t.day = #{task.day.desc}".ansi.blue
52
- puts " t.hour = #{task.hour.desc}".ansi.blue
53
- puts " t.minute = #{task.minute.desc}".ansi.blue
54
- puts " t.loop = #{task.loop.desc}".ansi.blue
47
+ puts " t.name = #{task.name}".ansi.blue
48
+ puts " t.path = #{task.path}".ansi.blue
49
+ puts " t.year = #{task.year.desc}".ansi.blue
50
+ puts " t.month = #{task.month.desc}".ansi.blue
51
+ puts " t.day = #{task.day.desc}".ansi.blue
52
+ puts " t.hour = #{task.hour.desc}".ansi.blue
53
+ puts " t.minute = #{task.minute.desc}".ansi.blue
54
+ puts " t.loop = #{task.loop.desc}".ansi.blue
55
+ puts " t.start_point = #{task.start_point.desc}".ansi.blue
56
+ puts " t.end_point = #{task.end_point.desc}".ansi.blue
55
57
  end
56
58
  end
57
59
  end
@@ -11,23 +11,23 @@ module TaskLoop
11
11
  #################################
12
12
  # Specific Syntax
13
13
  #################################
14
- def at(value)
15
- SpecificRule.new(:unknown, value)
14
+ def at(*values)
15
+ SpecificRule.new(:unknown, values)
16
16
  end
17
17
 
18
18
  #################################
19
19
  # Scope Syntax
20
20
  #################################
21
21
  def before(right)
22
- BeforeScopeRule.new(:unknown, :before, right)
22
+ BeforeScopeRule.new(:unknown, right)
23
23
  end
24
24
 
25
25
  def between(left, right)
26
- BetweenScopeRule.new(:unknown, :between, left, right)
26
+ BetweenScopeRule.new(:unknown, left, right)
27
27
  end
28
28
 
29
29
  def after(left)
30
- AfterScopeRule.new(:unknown, :after, left)
30
+ AfterScopeRule.new(:unknown, left)
31
31
  end
32
32
 
33
33
  #################################
@@ -51,6 +51,17 @@ module TaskLoop
51
51
  DateListRule.new(:unknown, args)
52
52
  end
53
53
 
54
+ #################################
55
+ # Boundary Syntax
56
+ #################################
57
+ def from(value)
58
+ StartPointBoundaryRule.new(:unknown, value)
59
+ end
60
+
61
+ def to(value)
62
+ EndPointBoundaryRule.new(:unknown, value)
63
+ end
64
+
54
65
  #################################
55
66
  # Env
56
67
  #################################
@@ -18,8 +18,4 @@ class Integer
18
18
  def year
19
19
  self
20
20
  end
21
-
22
- def times
23
- self
24
- end
25
21
  end
@@ -3,39 +3,39 @@ module TaskLoop
3
3
 
4
4
  attr_accessor :left
5
5
 
6
- def initialize(unit, scope, left)
7
- super unit, scope
6
+ def initialize(unit, left)
7
+ super unit, :after
8
8
  @left = left
9
9
  end
10
10
 
11
- def invalidate!
12
- super
13
- if @unit == :day
14
- unless Task::WEEK.has_key?(@left) || Task::DAY.has_key?(@left)
15
- raise ArgumentError, "#{left} must be a Symbol defined in Task::WEEK or Task::DAY"
16
- end
17
- return
18
- end
19
-
20
- if @unit == :month
21
- unless Task::MONTH.has_key?(@left)
22
- raise ArgumentError, "#{left} must be a Symbol defined in Task::MONTH"
23
- end
24
- return
25
- end
26
-
27
- unless @left.is_a?(Integer)
28
- raise TypeError, "'left' need to be Symbol or Integer"
29
- end
30
-
31
- if @unit == :minute && (@left < 0 || @left > 59)
32
- raise ArgumentError, "'right' for 'minute' must >= 0 and <= 59"
33
- end
34
-
35
- if @unit == :hour && (@left < 0 || @left > 23)
36
- raise ArgumentError, "'right' for 'hour' must >= 0 and <= 23"
37
- end
38
- end
11
+ # def invalidate!
12
+ # super
13
+ # if @unit == :day
14
+ # unless Task::WEEK.has_key?(@left) || Task::DAY.has_key?(@left)
15
+ # raise ArgumentError, "#{left} must be a Symbol defined in Task::WEEK or Task::DAY"
16
+ # end
17
+ # return
18
+ # end
19
+ #
20
+ # if @unit == :month
21
+ # unless Task::MONTH.has_key?(@left)
22
+ # raise ArgumentError, "#{left} must be a Symbol defined in Task::MONTH"
23
+ # end
24
+ # return
25
+ # end
26
+ #
27
+ # unless @left.is_a?(Integer)
28
+ # raise TypeError, "'left' need to be Symbol or Integer"
29
+ # end
30
+ #
31
+ # if @unit == :minute && (@left < 0 || @left > 59)
32
+ # raise ArgumentError, "'right' for 'minute' must >= 0 and <= 59"
33
+ # end
34
+ #
35
+ # if @unit == :hour && (@left < 0 || @left > 23)
36
+ # raise ArgumentError, "'right' for 'hour' must >= 0 and <= 23"
37
+ # end
38
+ # end
39
39
 
40
40
 
41
41
  def left_value
@@ -56,30 +56,21 @@ module TaskLoop
56
56
  return @left
57
57
  end
58
58
 
59
- def is_week_value?
60
- if @unit == :day && Task::WEEK.has_key?(@left)
61
- return true
62
- end
63
- return false
64
- end
65
-
66
59
  def is_conform_rule?(last_exec_time)
67
60
  current = Time.now
68
61
  value = left_value
69
62
  result = false
70
63
  case @unit
71
64
  when :year then
72
- result = current.year > value
65
+ result = current.year >= value
73
66
  when :month then
74
- result = current.month > value
67
+ result = current.month >= value
68
+ when :week then
69
+ result = current.wday >= (value % TaskLoop::WEEK_BASE)
75
70
  when :day then
76
- if is_week_value?
77
- result = current.wday > (value % TaskLoop::WEEK_BASE)
78
- else
79
- result = current.day > value
80
- end
71
+ result = current.day >= value
81
72
  when :hour then
82
- result = current.hour > value
73
+ result = current.hour >= value
83
74
  end
84
75
  return result
85
76
  end
@@ -3,39 +3,39 @@ module TaskLoop
3
3
 
4
4
  attr_accessor :right
5
5
 
6
- def initialize(unit, scope, right)
7
- super unit, scope
6
+ def initialize(unit, right)
7
+ super unit, :before
8
8
  @right = right
9
9
  end
10
10
 
11
- def invalidate!
12
- super
13
- if @unit == :day
14
- unless Task::WEEK.has_key?(@right) || Task::DAY.has_key?(@right)
15
- raise ArgumentError, "#{@right} must be a Symbol defined in Task::WEEK or Task::DAY"
16
- end
17
- return
18
- end
19
-
20
- if @unit == :month
21
- unless Task::MONTH.has_key?(@right)
22
- raise ArgumentError, "#{@right} must be a Symbol defined in Task::MONTH"
23
- end
24
- return
25
- end
26
-
27
- unless @right.is_a?(Integer)
28
- raise TypeError, "'right' need to be Symbol or Integer"
29
- end
30
-
31
- if @unit == :minute && (@right < 0 || @right > 59)
32
- raise ArgumentError, "'right' for 'minute' must >= 0 and <= 59"
33
- end
34
-
35
- if @unit == :hour && (@right < 0 || @right > 23)
36
- raise ArgumentError, "'right' for 'hour' must >= 0 and <= 23"
37
- end
38
- end
11
+ # def invalidate!
12
+ # super
13
+ # if @unit == :day
14
+ # unless Task::WEEK.has_key?(@right) || Task::DAY.has_key?(@right)
15
+ # raise ArgumentError, "#{@right} must be a Symbol defined in Task::WEEK or Task::DAY"
16
+ # end
17
+ # return
18
+ # end
19
+ #
20
+ # if @unit == :month
21
+ # unless Task::MONTH.has_key?(@right)
22
+ # raise ArgumentError, "#{@right} must be a Symbol defined in Task::MONTH"
23
+ # end
24
+ # return
25
+ # end
26
+ #
27
+ # unless @right.is_a?(Integer)
28
+ # raise TypeError, "'right' need to be Symbol or Integer"
29
+ # end
30
+ #
31
+ # if @unit == :minute && (@right < 0 || @right > 59)
32
+ # raise ArgumentError, "'right' for 'minute' must >= 0 and <= 59"
33
+ # end
34
+ #
35
+ # if @unit == :hour && (@right < 0 || @right > 23)
36
+ # raise ArgumentError, "'right' for 'hour' must >= 0 and <= 23"
37
+ # end
38
+ # end
39
39
 
40
40
  def right_value
41
41
  if (Task::DAY.has_key?(@right))
@@ -55,30 +55,21 @@ module TaskLoop
55
55
  return @right
56
56
  end
57
57
 
58
- def is_week_value?
59
- if @unit == :day && Task::WEEK.has_key?(@right)
60
- return true
61
- end
62
- return false
63
- end
64
-
65
58
  def is_conform_rule?(last_exec_time)
66
59
  current = Time.now
67
60
  value = right_value
68
61
  result = false
69
62
  case @unit
70
63
  when :year then
71
- result = current.year < value
64
+ result = current.year <= value
72
65
  when :month then
73
- result = current.month < value
66
+ result = current.month <= value
67
+ when :week then
68
+ result = current.wday <= (value % TaskLoop::WEEK_BASE)
74
69
  when :day then
75
- if is_week_value?
76
- result = current.wday < (value % TaskLoop::WEEK_BASE)
77
- else
78
- result = current.day < value
79
- end
70
+ result = current.day <= value
80
71
  when :hour then
81
- result = current.hour < value
72
+ result = current.hour <= value
82
73
  end
83
74
  return result
84
75
  end
@@ -5,58 +5,58 @@ module TaskLoop
5
5
 
6
6
  attr_accessor :right
7
7
 
8
- def initialize(unit, scope, left, right)
9
- super unit, scope
8
+ def initialize(unit, left, right)
9
+ super unit, :between
10
10
  @left = left
11
11
  @right = right
12
12
  end
13
13
 
14
- def invalidate!
15
- super
16
- if @unit == :day
17
- if Task::WEEK.has_key?(@left) && Task::WEEK.has_key?(@right)
18
- unless Task::WEEK[@left] < Task::WEEK[@right]
19
- raise ArgumentError, "'left' must less than 'right'"
20
- end
21
- return
22
- end
23
- if Task::DAY.has_key?(@left) && Task::DAY.has_key?(@right)
24
- unless Task::WEEK[@left] < Task::WEEK[@right]
25
- raise ArgumentError, "'left' must less than 'right'"
26
- end
27
- return
28
- end
29
-
30
- raise ArgumentError, "'left' and 'right' must be the same type."
31
- end
32
-
33
- if @unit == :month
34
- unless Task::MONTH.has_key?(@left)
35
- raise ArgumentError, "#{left} must be a Symbol defined in Task::MONTH"
36
- end
37
- return
38
- end
39
-
40
- unless @left.is_a?(Integer) && @right.is_a?(Integer)
41
- raise TypeError, "both 'left' and 'right' need to be Symbol or Integer"
42
- end
43
-
44
- unless @left < @right
45
- raise ArgumentError, "'left' must less than 'right'"
46
- end
47
-
48
- if @unit == :minute && (@left < 0 || @right > 59)
49
- raise ArgumentError, "'left' and 'right' for 'minute' must >= 0 and <= 59"
50
- end
51
-
52
- if @unit == :hour && (@left < 0 || @right > 23)
53
- raise ArgumentError, "'left', 'right' for 'hour' must >= 0 and <= 23"
54
- end
55
-
56
- if @unit == :year && @left < 0
57
- raise ArgumentError, "'left' must greater than 0"
58
- end
59
- end
14
+ # def invalidate!
15
+ # super
16
+ # if @unit == :day
17
+ # if Task::WEEK.has_key?(@left) && Task::WEEK.has_key?(@right)
18
+ # unless Task::WEEK[@left] < Task::WEEK[@right]
19
+ # raise ArgumentError, "'left' must less than 'right'"
20
+ # end
21
+ # return
22
+ # end
23
+ # if Task::DAY.has_key?(@left) && Task::DAY.has_key?(@right)
24
+ # unless Task::WEEK[@left] < Task::WEEK[@right]
25
+ # raise ArgumentError, "'left' must less than 'right'"
26
+ # end
27
+ # return
28
+ # end
29
+ #
30
+ # raise ArgumentError, "'left' and 'right' must be the same type."
31
+ # end
32
+ #
33
+ # if @unit == :month
34
+ # unless Task::MONTH.has_key?(@left)
35
+ # raise ArgumentError, "#{left} must be a Symbol defined in Task::MONTH"
36
+ # end
37
+ # return
38
+ # end
39
+ #
40
+ # unless @left.is_a?(Integer) && @right.is_a?(Integer)
41
+ # raise TypeError, "both 'left' and 'right' need to be Symbol or Integer"
42
+ # end
43
+ #
44
+ # unless @left < @right
45
+ # raise ArgumentError, "'left' must less than 'right'"
46
+ # end
47
+ #
48
+ # if @unit == :minute && (@left < 0 || @right > 59)
49
+ # raise ArgumentError, "'left' and 'right' for 'minute' must >= 0 and <= 59"
50
+ # end
51
+ #
52
+ # if @unit == :hour && (@left < 0 || @right > 23)
53
+ # raise ArgumentError, "'left', 'right' for 'hour' must >= 0 and <= 23"
54
+ # end
55
+ #
56
+ # if @unit == :year && @left < 0
57
+ # raise ArgumentError, "'left' must greater than 0"
58
+ # end
59
+ # end
60
60
 
61
61
  def left_value
62
62
  if (Task::DAY.has_key?(@left))
@@ -94,13 +94,6 @@ module TaskLoop
94
94
  return @right
95
95
  end
96
96
 
97
- def is_week_value?
98
- if @unit == :day && Task::WEEK.has_key?(@left) && Task::WEEK.has_key?(@right)
99
- return true
100
- end
101
- return false
102
- end
103
-
104
97
  def is_conform_rule?(last_exec_time)
105
98
  current = Time.now
106
99
  left = left_value
@@ -111,12 +104,10 @@ module TaskLoop
111
104
  result = left <= current.year >= left && current.year <= right
112
105
  when :month then
113
106
  result = left <= current.month && current.month <= right
107
+ when :week then
108
+ result = (left % TaskLoop::WEEK_BASE) <= current.wday && current.wday <= (right % TaskLoop::WEEK_BASE)
114
109
  when :day then
115
- if is_week_value?
116
- result = (left % TaskLoop::WEEK_BASE) <= current.wday && current.wday <= (right % TaskLoop::WEEK_BASE)
117
- else
118
- result = left <= current.day && current.day <= right
119
- end
110
+ result = left <= current.day && current.day <= right
120
111
  when :hour then
121
112
  result = left <= current.hour && current.hour <= right
122
113
  end
@@ -0,0 +1,21 @@
1
+ module TaskLoop
2
+
3
+ class BoundaryRule < Rule
4
+
5
+ BOUNDARY = {
6
+ :start => 0,
7
+ :end => 1,
8
+ }
9
+
10
+ attr_accessor :boundary
11
+
12
+ def initialize(unit, boundary)
13
+ super unit
14
+ @boundary = boundary
15
+ end
16
+
17
+ def desc
18
+ super + "; boundary: #{boundary.to_s}"
19
+ end
20
+ end
21
+ end
@@ -26,10 +26,6 @@ module TaskLoop
26
26
  @dates = dates
27
27
  end
28
28
 
29
- def is_week_value?
30
- return false
31
- end
32
-
33
29
  def is_conform_rule?(last_exec_time)
34
30
  current = Time.now
35
31
  result = false
@@ -4,10 +4,6 @@ module TaskLoop
4
4
  super unit
5
5
  end
6
6
 
7
- def is_week_value?
8
- return false
9
- end
10
-
11
7
  def is_conform_rule?(last_exec_time)
12
8
  return true
13
9
  end
@@ -0,0 +1,21 @@
1
+ module TaskLoop
2
+ class EndPointBoundaryRule < BoundaryRule
3
+ attr_accessor :value
4
+ def initialize(unit, value)
5
+ super unit, :end
6
+ @value = value
7
+ end
8
+
9
+ def is_conform_rule?(last_exec_time)
10
+ current = Time.now.to_i
11
+ date_format = "%Y-%m-%d %H:%M:%S"
12
+ date_object = Time.strptime(value, date_format)
13
+ end_time = date_object.to_i
14
+ return current <= end_time
15
+ end
16
+
17
+ def desc
18
+ super + " to #{value}"
19
+ end
20
+ end
21
+ end
@@ -8,10 +8,6 @@ module TaskLoop
8
8
  @interval = interval
9
9
  end
10
10
 
11
- def is_week_value?
12
- return false
13
- end
14
-
15
11
  def is_conform_rule?(last_exec_time)
16
12
  # interval rule is different for other rules. It should be calculated by combining the interval times of all units.
17
13
  # So here returns false
@@ -8,10 +8,6 @@ module TaskLoop
8
8
  @count = count
9
9
  end
10
10
 
11
- def is_week_value?
12
- return false
13
- end
14
-
15
11
  def is_conform_rule?(last_exec_time)
16
12
  # loop rule is different for other rules. It should based on task loop file.
17
13
  # So here returns false
@@ -8,9 +8,11 @@ module TaskLoop
8
8
  :day => 3, # support interval/scope/specific syntax
9
9
  :month => 4, # support interval/scope/specific syntax
10
10
  :year => 5, # support interval/scope/specific syntax
11
+ :week => 6, # support scope/specific syntax
11
12
  :loop => 7, # only support loop syntax
12
13
  :date => 8, # only support date list syntax
13
14
  :time => 9, # only support time list syntax
15
+ :full => 10, # only support boundary syntax
14
16
  }
15
17
 
16
18
  attr_accessor :unit
@@ -19,10 +21,6 @@ module TaskLoop
19
21
  @unit = unit
20
22
  end
21
23
 
22
- def is_week_value?
23
- raise NotImplementedError, 'subclass need implement this method!'
24
- end
25
-
26
24
  def is_conform_rule?(last_exec_time)
27
25
  raise NotImplementedError, 'subclass need implement this method!'
28
26
  end