robut-cron 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  Chatfile
19
+ .robut
data/lib/robut-cron.rb CHANGED
@@ -4,7 +4,7 @@ class Robut::Plugin::Cron
4
4
  include Robut::Plugin
5
5
 
6
6
  @@skeds = Hash.new
7
-
7
+
8
8
  # Returns a description of how to use this plugin
9
9
  def usage
10
10
  ["#{at_nick} cron new * * * * * <message> - will send this message on the cron schedule",
@@ -27,6 +27,8 @@ class Robut::Plugin::Cron
27
27
  reply list
28
28
  when "stop"
29
29
  reply stop(a[3..a.count()-1].join(" "))
30
+ when "load"
31
+ load_from_file(a[3..a.count()-1].join(" "))
30
32
  else
31
33
  reply "i don't understand that cron command"
32
34
  end
@@ -39,7 +41,7 @@ class Robut::Plugin::Cron
39
41
  scheduler = Rufus::Scheduler.start_new
40
42
  job = scheduler.cron cron do |job|
41
43
 
42
- if @@skeds.has_value? job
44
+ if @@skeds.has_value? job.t
43
45
  connection = self.connection
44
46
  reply(message)
45
47
  else
@@ -47,7 +49,9 @@ class Robut::Plugin::Cron
47
49
  end
48
50
 
49
51
  end
50
- @@skeds[message] = job
52
+ @@skeds[message] = job.t
53
+ store['jobs'] ||= []
54
+ store['jobs'] = @@skeds
51
55
  reply "new cron job with id: #{message}"
52
56
  rescue ArgumentError
53
57
  reply "argument error, perhaps the cronline?"
@@ -58,23 +62,43 @@ class Robut::Plugin::Cron
58
62
  if @@skeds.empty?
59
63
  "no jobs!"
60
64
  else
61
- h = Hash.new
62
- @@skeds.each do |key, val|
63
- h[key] = val.t
64
- end
65
-
66
- h.to_s
65
+ store['jobs'].to_s
67
66
  end
68
67
  end
69
68
 
70
69
  def stop(id)
71
70
  if @@skeds.has_key?(id)
72
71
  @@skeds.delete(id)
72
+ store['jobs'] ||= []
73
+ store['jobs'] = @@skeds
73
74
  "stopping #{id}"
74
75
  else
75
76
  "invalid id: #{id}, can't stop that"
76
77
  end
77
78
  end
78
79
 
80
+ # load the jobs from the .robut store
81
+ # it's a bit of a chicken/egg prob so we'll
82
+ # create if it doesn't exist and leave
83
+ # it empty.
84
+ def load_from_file(file)
85
+ if !File.exist? file
86
+ reply "file does not exist"
87
+ else
88
+ begin
89
+ s = YAML.load_file(file)
90
+ if s
91
+ s['jobs'].each do |key, val|
92
+ create val,key
93
+ end
94
+ else
95
+ reply "not a valid robut config file"
96
+ end
97
+ rescue
98
+ reply "not a valid robut config file"
99
+ end
100
+ end
101
+ end
102
+
79
103
  end
80
104
 
@@ -1,5 +1,5 @@
1
1
  module Robut
2
2
  module Cron
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: robut-cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-30 00:00:00.000000000 Z
12
+ date: 2013-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: robut