ellen-cron 0.0.1 → 0.0.2

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 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: