day_planner 0.0.3.1 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/day_planner/base.rb +36 -0
- data/lib/day_planner/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 087bf6c25abf28aae91daf4a2cc5588124c39ec0
|
4
|
+
data.tar.gz: ab0a8bd20205d887eed7284d2fb0525ec3f5acb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 146334ddc8585204defae81055d90a9887a85014551cde59ed15b10a80718e553cf4b676c559f99203fee1d9abbf5ceb172aa40c14a1abce43b3b8c0b45875a9
|
7
|
+
data.tar.gz: f2a6f37630a0c7209903ca18d201ba23666bcde53d44c9978c4aa7434c9a1d2bb408eef3e7143e9bcbce411c0c31b7c8f53909ff7f89fbd6d2b95a7b1da540a9
|
data/README.md
CHANGED
@@ -52,6 +52,19 @@ Specify your preferred interval (and whatever other goodies may be waiting in th
|
|
52
52
|
|
53
53
|
I sort of think it might work without Rails, keeping in mind the various aforementioned caveats? I'm not really sure. If it totally doesn't, I'd appreciate feedback.
|
54
54
|
|
55
|
+
You can name a task thusly:
|
56
|
+
DayPlanner.schedule(every: 2.minutes, name: "my task") do
|
57
|
+
MyClass.my_class_method
|
58
|
+
end
|
59
|
+
|
60
|
+
If you do, you can find the task later:
|
61
|
+
DayPlanner.find_task("my task")
|
62
|
+
|
63
|
+
To cancel a task, you can either call the task's "destroy" method, or call a class method on DayPlanner:
|
64
|
+
DayPlanner.cancel(task)
|
65
|
+
|
66
|
+
You can either pass a name, if you named the task, or the task object.
|
67
|
+
|
55
68
|
## Contributing
|
56
69
|
|
57
70
|
1. Fork it
|
data/lib/day_planner/base.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
module DayPlanner
|
2
2
|
@@tasks = []
|
3
|
+
@@named_tasks = {}
|
3
4
|
|
4
5
|
class << self
|
5
6
|
def tasks
|
@@ -12,6 +13,12 @@ module DayPlanner
|
|
12
13
|
Task.new(options, &block)
|
13
14
|
end
|
14
15
|
|
16
|
+
def cancel(task)
|
17
|
+
task = find_task(task) if task.is_a?(String)
|
18
|
+
raise ArgumentError, "DayPlanner couldn't find this task" if task.nil? || !task.is_a?(DayPlanner::Task)
|
19
|
+
task.destroy
|
20
|
+
end
|
21
|
+
|
15
22
|
def activate
|
16
23
|
@@master.kill if defined?(@@master)
|
17
24
|
|
@@ -31,6 +38,20 @@ module DayPlanner
|
|
31
38
|
@@interval = value
|
32
39
|
end
|
33
40
|
|
41
|
+
def find_task(name)
|
42
|
+
@@named_tasks[name]
|
43
|
+
end
|
44
|
+
|
45
|
+
def register_task_name(name, task)
|
46
|
+
raise ArgumentError unless task.is_a?(DayPlanner::Task)
|
47
|
+
raise ArgumentError unless @@named_tasks[name].nil?
|
48
|
+
@@named_tasks[name] = task
|
49
|
+
end
|
50
|
+
|
51
|
+
def delete_task_name(name)
|
52
|
+
@@named_tasks.delete(name)
|
53
|
+
end
|
54
|
+
|
34
55
|
private
|
35
56
|
def check_schedule
|
36
57
|
tasks.each do |t|
|
@@ -59,6 +80,13 @@ module DayPlanner
|
|
59
80
|
end
|
60
81
|
end
|
61
82
|
|
83
|
+
def destroy
|
84
|
+
DayPlanner.tasks.delete(self)
|
85
|
+
if @name
|
86
|
+
DayPlanner.delete_task_name(@name)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
62
90
|
def initialize(options, &block)
|
63
91
|
if options[:every]
|
64
92
|
@interval = options[:every]
|
@@ -67,6 +95,14 @@ module DayPlanner
|
|
67
95
|
raise ArgumentError, "DayPlanner: Scheduling tasks at anything other than simple intervals using 'every' is still not implemented, not even a little bit."
|
68
96
|
end
|
69
97
|
|
98
|
+
if options[:name]
|
99
|
+
name = options.delete(:name)
|
100
|
+
if !DayPlanner.find_task(name)
|
101
|
+
@name = name
|
102
|
+
DayPlanner.register_task_name(name, self)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
70
106
|
@task = block
|
71
107
|
|
72
108
|
DayPlanner.tasks.push(self)
|
data/lib/day_planner/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: day_planner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damon Siefert
|
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
75
|
version: '0'
|
76
76
|
requirements: []
|
77
77
|
rubyforge_project:
|
78
|
-
rubygems_version: 2.0.
|
78
|
+
rubygems_version: 2.0.14
|
79
79
|
signing_key:
|
80
80
|
specification_version: 4
|
81
81
|
summary: Built to have a way to schedule tasks without running an extra process and
|