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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3c5945ba5b7ad83406ac05b7b2c6caad6f9ea44b
4
- data.tar.gz: 7b21787e4bf0a19a7d0510a5f9072c7fe078b15f
3
+ metadata.gz: 8dd0935f041ad0970890bde1e14a491e38393070
4
+ data.tar.gz: 860494c709c6e3c5a1ea6603ea2225c64adff057
5
5
  SHA512:
6
- metadata.gz: f3ef88cfa7be18997a97976eb40fa798313b30dc124e2a217715709b5ca984243fbd8831bfdcfeab91d059f8e661574ac68b104ad46b89f7b32c5b8348f229b0
7
- data.tar.gz: 530ade7f71b3a93a87d17fb5ddcfd31472e34b34d8b99aaf71449ef127321062507d9be144a50a2ec94e337c2f4e563497e81e0a5c4c5f0c524cbb2f822620e6
6
+ metadata.gz: d4f84cae0f0b1b53443209508c5752f3e6d703a976644993297cd5c4484ab5886a2c4c124982f0764bbd632e7f07f53f88d151f3aafe753974a9e38780f5882b
7
+ data.tar.gz: 972de31762c139e78a1249dc6cfd3d24ff87cd584fc8b11007aae3884e81a2f371567bb866e5dd99bdb7618f56cba667ee1bcb8811fa15591a9e927d95aaea39
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Lita::Schedule
1
+ # lita-schedule
2
2
 
3
- Add base class for scheduled job (cron) to Lita
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 < Lita::Schedule
26
+ class TimeTone < Schedule
27
27
 
28
28
  cron('* * * * * Asia/Tokyo', :every_minutes_job)
29
29
  def every_minutes_job
30
- target = Struct.new(:room_jid).new('your_room@conf.hipchat.com')
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
- # @scheduler.every '5s' do
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(Lita::REDIS_NAMESPACE, redis: Lita.redis)
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
@@ -1,5 +1,5 @@
1
1
  module Lita
2
2
  class Schedule
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  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.1
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-02 00:00:00.000000000 Z
11
+ date: 2013-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita