lita-schedule 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 +4 -4
- data/README.md +4 -4
- data/lib/lita/lita.rb +33 -3
- data/lib/lita/schedule.rb +15 -1
- data/lib/lita/schedule/version.rb +1 -1
- 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: 8dd0935f041ad0970890bde1e14a491e38393070
|
4
|
+
data.tar.gz: 860494c709c6e3c5a1ea6603ea2225c64adff057
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4f84cae0f0b1b53443209508c5752f3e6d703a976644993297cd5c4484ab5886a2c4c124982f0764bbd632e7f07f53f88d151f3aafe753974a9e38780f5882b
|
7
|
+
data.tar.gz: 972de31762c139e78a1249dc6cfd3d24ff87cd584fc8b11007aae3884e81a2f371567bb866e5dd99bdb7618f56cba667ee1bcb8811fa15591a9e927d95aaea39
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# lita-schedule
|
2
2
|
|
3
|
-
Add base class for scheduled job (cron) to
|
3
|
+
Add base class for scheduled job (cron) to [jimmycuadra/lita](https://github.com/jimmycuadra/lita)
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -23,11 +23,11 @@ require 'lita-schedule'
|
|
23
23
|
|
24
24
|
module Lita
|
25
25
|
module Schedules
|
26
|
-
class TimeTone <
|
26
|
+
class TimeTone < Schedule
|
27
27
|
|
28
28
|
cron('* * * * * Asia/Tokyo', :every_minutes_job)
|
29
29
|
def every_minutes_job
|
30
|
-
target = Struct.new(:
|
30
|
+
target = Struct.new(:room).new('your_room@conf.hipchat.com')
|
31
31
|
robot.send_message(target, Time.now.to_s)
|
32
32
|
end
|
33
33
|
end
|
data/lib/lita/lita.rb
CHANGED
@@ -1,6 +1,38 @@
|
|
1
1
|
require 'rufus/scheduler'
|
2
2
|
|
3
3
|
module Lita
|
4
|
+
class Config < Hash
|
5
|
+
class << self
|
6
|
+
def default_config
|
7
|
+
config = new.tap do |c|
|
8
|
+
c.robot = new
|
9
|
+
c.robot.name = "Lita"
|
10
|
+
c.robot.adapter = :shell
|
11
|
+
c.robot.log_level = :info
|
12
|
+
c.robot.admins = nil
|
13
|
+
c.redis = new
|
14
|
+
c.http = new
|
15
|
+
c.http.port = 8080
|
16
|
+
c.http.debug = false
|
17
|
+
c.adapter = new
|
18
|
+
c.handlers = new
|
19
|
+
c.schedules = new # added
|
20
|
+
end
|
21
|
+
load_handler_configs(config)
|
22
|
+
load_schedule_configs(config) # added
|
23
|
+
config
|
24
|
+
end
|
25
|
+
|
26
|
+
def load_schedule_configs(config)
|
27
|
+
Lita.schedules.each do |schedule|
|
28
|
+
next unless schedule.respond_to?(:default_config)
|
29
|
+
schedule_config = config.schedules[schedule.namespace] = new
|
30
|
+
schedule.default_config(schedule_config)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
4
36
|
class << self
|
5
37
|
def schedules
|
6
38
|
@schedules ||= Set.new
|
@@ -18,9 +50,7 @@ module Lita
|
|
18
50
|
end
|
19
51
|
|
20
52
|
def register_schedules
|
21
|
-
|
22
|
-
# puts "hogehoge"
|
23
|
-
# end
|
53
|
+
|
24
54
|
Lita.schedules.each { |schedule|
|
25
55
|
schedule.jobs.each { |job|
|
26
56
|
@scheduler.cron job.cron_field do
|
data/lib/lita/schedule.rb
CHANGED
@@ -17,11 +17,25 @@ module Lita
|
|
17
17
|
def jobs
|
18
18
|
@jobs ||= []
|
19
19
|
end
|
20
|
+
|
21
|
+
def namespace
|
22
|
+
if name
|
23
|
+
Util.underscore(name.split("::").last)
|
24
|
+
else
|
25
|
+
raise "Handlers that are anonymous classes must define self.name."
|
26
|
+
end
|
27
|
+
end
|
20
28
|
end
|
21
29
|
|
22
30
|
def initialize(robot)
|
23
31
|
@robot = robot
|
24
|
-
@redis = Redis::Namespace.new(
|
32
|
+
@redis = Redis::Namespace.new(redis_namespace, redis: Lita.redis)
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def redis_namespace
|
38
|
+
"schedules:#{self.class.namespace}"
|
25
39
|
end
|
26
40
|
end
|
27
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-schedule
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fukayatsu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|