lita-task-scheduler 0.1.0 → 0.1.1

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