lita-task-scheduler 0.1.0 → 0.1.1

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: d259d0c02dafa2dd0f0e0d469bf23cffd40f85c1
4
- data.tar.gz: be43fa36f726419e8abd2ea4b7bf07e1366db066
3
+ metadata.gz: c1c534abd255cca4223c3d12ac9fed05cbb065a2
4
+ data.tar.gz: 4bc8e533d727d056ee1430a2c1354cfa9aeec931
5
5
  SHA512:
6
- metadata.gz: d7a5c813a0675b8865067a8fbc0507f9e67fe4bfaa00d609b29b0b329af03a7e9a51df1ca45c18740e06ac9d6e69e6d130339c6564a019c01b02d5303a21c106
7
- data.tar.gz: d978d3ea4817e8efadde00464be23c4988d94d3c099eb1413d92e49bbca2952c5ecde1c7a6e19a083214272d50a348b8fc1f10393552dfcdd27f2e2e4e5aa139
6
+ metadata.gz: 7701aaef31efb81503dc8eb0f6e4505d8429335757e0b3cbd118747bf6ac8d48aed92a195731b621cdfcc797f7f185b5b68c8741c9a836dffbd4e05d1dbc00db
7
+ data.tar.gz: a865d1c5ddc0cab514cdfbc2b219e43a3979619ab88b741736627c0d1265c796ce62bdfbd51ae088ed2ec9bff28c2485ff8ab9d5a2f54c05b47f61b823a582a2
data/.gitignore CHANGED
@@ -15,3 +15,8 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+
19
+ # vim
20
+ *.swp
21
+ *.swo
22
+ *~
@@ -1,37 +1,46 @@
1
1
  module Lita
2
2
  module Handlers
3
3
  class TaskScheduler < Handler
4
- # insert handler code here
5
- #
6
- on :unhandled_message, :rebroadcast
4
+
5
+ route /^schedule\s+"(.+)"\s+in\s+(.+)$/i, :schedule
6
+
7
+ def schedule(payload)
8
+ payload.matches.each do |task, timing|
9
+ serialized = serialize_message(payload.message, new_body: task)
10
+ resend(serialized)
11
+ end
12
+ end
7
13
 
8
14
  def rebroadcast(payload)
9
- serialized = serialize_message(payload)
15
+ serialized = serialize_message(payload.message)
10
16
 
11
- resend(serialized)
17
+ key = "delay_#{rand(100..10000)}"
18
+ redis.set(key, serialized.to_json)
19
+ reloaded = JSON.parse redis.get(key), symbolize_names: true
20
+
21
+ resend(reloaded)
12
22
  end
13
23
 
14
24
  def resend(serialized)
15
25
  user = Lita::User.new(serialized.fetch(:user_name))
16
26
  room = Lita::Room.new(serialized.fetch(:room_name))
17
27
  source = Lita::Source.new(user: user, room: room)
28
+ body = "#{robot.name} #{serialized.fetch(:body)}"
18
29
 
19
30
  newmsg = Lita::Message.new(
20
31
  robot,
21
- "#{robot.name} double #{rand(1..100)}",
32
+ body,
22
33
  source
23
34
  )
24
35
 
25
36
  robot.receive newmsg
26
37
  end
27
38
 
28
- def serialize_message(payload)
29
- msg = payload.fetch(:message)
30
-
39
+ def serialize_message(message, new_body: nil)
31
40
  {
32
- user_name: msg.user.name,
33
- room_name: msg.source.room,
34
- body: msg.body
41
+ user_name: message.user.name,
42
+ room_name: message.source.room,
43
+ body: new_body || message.body
35
44
  }
36
45
  end
37
46
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-task-scheduler"
3
- spec.version = "0.1.0"
3
+ spec.version = "0.1.1"
4
4
  spec.authors = ["Daniel J. Pritchett"]
5
5
  spec.email = ["dpritchett@gmail.com"]
6
6
  spec.description = "Schedule jobs in Lita"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-task-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Pritchett
@@ -120,7 +120,6 @@ files:
120
120
  - README.md
121
121
  - Rakefile
122
122
  - lib/lita-task-scheduler.rb
123
- - lib/lita/handlers/.task_scheduler.rb.swp
124
123
  - lib/lita/handlers/task_scheduler.rb
125
124
  - lita-task-scheduler.gemspec
126
125
  - locales/en.yml