ellen-cron 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64268f41dc8d52a47f3e2c4e346508ea1414d0c5
4
- data.tar.gz: 581838d20cbf1fd07178fd3ac0ff7290b713ae0d
3
+ metadata.gz: 355331b41bd2bfd9f8c496d9beeb5fddfb15ee3a
4
+ data.tar.gz: 9bef52783244915789b8b098996d8dbee4c186f2
5
5
  SHA512:
6
- metadata.gz: 6eb4900b9e8ce376fce3e3d1a17012b61ffee430b2baaab080eee9afa8d9ed92fd898b9cf88bcaf6dd03ae38d593f7cecdd781507900b8dc9d989987053cc217
7
- data.tar.gz: 49a6c557e7af063403c196837b0b2b9f7c055e78bf52afda23b92fb30978d03615c968e43af50c591ac8f75fcd9f014ed985fcaeb8eda5579a40b8bc4836f7df
6
+ metadata.gz: 04c3bd2d1519dda40d21069d50cedb0e3acab9bab57b48e8c9f39b707bd9f0a7e05d5dc65a7462de7094d596ead2358f8f7fb5f0419ff31a9da6bf0b6947904d
7
+ data.tar.gz: 5e0f5c210e4bf9ca20719c054c7ff67205cb22e2b5ac82abc3cfc9f3f2e166fc166bf6bddafca6c1b4b6b9dc08112a59c005aea449e10b309110fbf6d5bcf3ad
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## 0.0.2
2
+ * Support the new Brain interface
3
+
4
+ ## 0.0.1
5
+ * 1st Release
data/README.md CHANGED
@@ -9,3 +9,5 @@ You can use any [Chrono](https://github.com/r7kamura/chrono/) compatible cron sy
9
9
  @ellen delete job <id> - Delete a cron job
10
10
  @ellen list jobs - List all cron jobs
11
11
  ```
12
+
13
+ ![](https://raw.githubusercontent.com/r7kamura/ellen-cron/master/images/screenshot.png)
data/ellen-cron.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_dependency "activesupport"
20
20
  spec.add_dependency "chrono"
21
- spec.add_dependency "ellen", ">= 0.0.8"
21
+ spec.add_dependency "ellen", ">= 0.1.1"
22
22
  spec.add_development_dependency "bundler", "~> 1.6"
23
23
  spec.add_development_dependency "rake"
24
24
  end
Binary file
@@ -11,10 +11,6 @@ module Ellen
11
11
  @attributes = attributes.stringify_keys
12
12
  end
13
13
 
14
- def to_json
15
- to_hash.to_json
16
- end
17
-
18
14
  def start(robot)
19
15
  @thread = Thread.new do
20
16
  Chrono::Trigger.new(schedule) do
@@ -23,6 +19,10 @@ module Ellen
23
19
  end
24
20
  end
25
21
 
22
+ def to_hash
23
+ attributes
24
+ end
25
+
26
26
  def stop
27
27
  thread.kill
28
28
  end
@@ -42,12 +42,6 @@ module Ellen
42
42
  def body
43
43
  attributes["body"]
44
44
  end
45
-
46
- private
47
-
48
- def to_hash
49
- attributes.to_json
50
- end
51
45
  end
52
46
  end
53
47
  end
@@ -1,5 +1,5 @@
1
1
  module Ellen
2
2
  module Cron
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -1,6 +1,8 @@
1
1
  module Ellen
2
2
  module Handlers
3
3
  class Cron < Base
4
+ NAMESPACE = "cron"
5
+
4
6
  on(/add job "(.+)" (.+)/, name: "add", description: "Add a new cron job")
5
7
 
6
8
  on(/delete job (\d+)/, name: "delete", description: "Delete a cron job")
@@ -11,7 +13,7 @@ module Ellen
11
13
 
12
14
  def add(message)
13
15
  job = create(message)
14
- robot.say "Job #{job.id} created"
16
+ robot.say("Job #{job.id} created")
15
17
  end
16
18
 
17
19
  def delete(message)
@@ -19,52 +21,47 @@ module Ellen
19
21
  if jobs.has_key?(id)
20
22
  jobs[id].stop
21
23
  jobs.delete(id)
22
- push
23
- robot.say "Job #{id} deleted"
24
+ robot.say("Job #{id} deleted")
24
25
  else
25
- robot.say "Job #{id} does not exist"
26
+ robot.say("Job #{id} does not exist")
26
27
  end
27
28
  end
28
29
 
29
30
  def list(message)
30
- robot.say jobs_list
31
+ robot.say(summary)
31
32
  end
32
33
 
33
34
  private
34
35
 
35
- def pull
36
- self.jobs = robot.brain.data["cron"].inject({}) do |result, (id, attributes)|
37
- result.merge(id => Ellen::Cron::Job.new(attributes))
38
- end
39
- end
40
-
41
- def push
42
- robot.brain.data["cron"] = jobs.inject({}) do |result, (id, job)|
43
- result.merge(id => job.to_json)
44
- end
45
- robot.brain.save
46
- end
47
-
48
36
  def jobs
49
- @jobs ||= {}
37
+ robot.brain.data[NAMESPACE] ||= {}
50
38
  end
51
39
 
52
40
  def create(message)
53
41
  job = Ellen::Cron::Job.new(id: generate_id, schedule: message[1], body: message[2])
54
- jobs[job.id] = job
55
- push
42
+ jobs[job.id] = job.to_hash
56
43
  job.start(robot)
57
44
  job
58
45
  end
59
46
 
60
- def jobs_list
47
+ def summary
61
48
  if jobs.empty?
62
- "Jobs not found"
49
+ empty_message
63
50
  else
64
- jobs.values.map(&:description).join("\n")
51
+ job_descriptions
65
52
  end
66
53
  end
67
54
 
55
+ def empty_message
56
+ "Job not found"
57
+ end
58
+
59
+ def job_descriptions
60
+ jobs.values.map do |attributes|
61
+ Ellen::Cron::Job.new(attributes).description
62
+ end.join("\n")
63
+ end
64
+
68
65
  def generate_id
69
66
  loop do
70
67
  id = rand(10000)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ellen-cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-20 00:00:00.000000000 Z
11
+ date: 2014-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.8
47
+ version: 0.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.8
54
+ version: 0.1.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -88,11 +88,13 @@ extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
+ - CHANGELOG.md
91
92
  - Gemfile
92
93
  - LICENSE.txt
93
94
  - README.md
94
95
  - Rakefile
95
96
  - ellen-cron.gemspec
97
+ - images/screenshot.png
96
98
  - lib/ellen/cron.rb
97
99
  - lib/ellen/cron/job.rb
98
100
  - lib/ellen/cron/version.rb
@@ -122,3 +124,4 @@ signing_key:
122
124
  specification_version: 4
123
125
  summary: Mount cron system to Ellen to schedule messages on a specific time.
124
126
  test_files: []
127
+ has_rdoc: