lita 2.5.0 → 2.6.0

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: a0f46a0926eb20ff35d1597e8d7474e64984ffd4
4
- data.tar.gz: 63b751e98f2e477e41b144da5c731160963d2377
3
+ metadata.gz: e05fe1e0cb321abc7f328ade3580833013f91650
4
+ data.tar.gz: 150331c84e76818a44f66f2759a965aed8d8fa75
5
5
  SHA512:
6
- metadata.gz: 2f594e6d3301112d652d22b03c3f280c2560a7a86ab6868369d6240c3816cee6500db31c9737268850be6f04257c895baf27c4f06840a727ec95f93554d93824
7
- data.tar.gz: 189688873d5ed9c3c110c0114b47ce94267ea4a7ea66f0c455652363f2433e18fed60e99ae792232e329eadb08f20ea6aeb77a2cb3eef4225f7412343582ec24
6
+ metadata.gz: af679c53aaa2fd86fedfa2c69b984d0961f9d7af73cf371a7c3a8148101dbae94396d078331b19fd2dcddaf1bd12b2bcf8e73dbed00bfbdda0134b3475ce8a2a
7
+ data.tar.gz: f61fd270bd693b01bc78ccd5e07062bf4838ca5265c25fa08394cf6b63f25a93fb48e655377b83b1f93a3550a86bd5ded52401d82a269b3d3d28a53261955df0
data/README.md CHANGED
@@ -261,6 +261,14 @@ robot.trigger(:connected, room: "#litabot")
261
261
 
262
262
  Since the `trigger` method is available on `Lita::Robot`, it can be used from anywhere in the Lita runtime (both adapters and handlers).
263
263
 
264
+ ### Built-in events
265
+
266
+ Lita has a few built-in events:
267
+
268
+ * `:loaded` - Fired when the `Lita::Robot` object has been initialized during start up. This can be used as a hook point for handlers to define routes that depend on user configuration not known until runtime, run migrations on data in Redis, or other start up tasks.
269
+ * `:shut_down_started` - Fired when the robot first begins shutting down.
270
+ * `:shut_down_completed` - Fired when the robot has finished shutting down both the built-in web server and the chat adapter.
271
+
264
272
  ### Handler-specific configuration
265
273
 
266
274
  If you want your handler to expose config settings to the user, use the class-level `default_config` method. This method accepts a single config object as an argument, which will be exposed to the user as `Lita.config.handlers.your_handler_namespace`.
data/lib/lita/robot.rb CHANGED
@@ -22,6 +22,7 @@ module Lita
22
22
  @mention_name = Lita.config.robot.mention_name || @name
23
23
  @app = RackApp.new(self).to_app
24
24
  load_adapter
25
+ trigger(:loaded)
25
26
  end
26
27
 
27
28
  # The primary entry point from the adapter for an incoming message.
@@ -66,9 +67,11 @@ module Lita
66
67
  # service.
67
68
  # @return [void]
68
69
  def shut_down
70
+ trigger(:shut_down_started)
69
71
  @server.stop if @server
70
72
  @server_thread.join if @server_thread
71
73
  @adapter.shut_down
74
+ trigger(:shut_down_complete)
72
75
  end
73
76
 
74
77
  # Triggers an event, instructing all registered handlers to invoke any
data/lib/lita/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Lita
2
2
  # The current version of Lita.
3
- VERSION = "2.5.0"
3
+ VERSION = "2.6.0"
4
4
  end
data/lita.gemspec CHANGED
@@ -20,16 +20,16 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.required_ruby_version = ">= 2.0.0"
22
22
 
23
- spec.add_runtime_dependency "bundler", "~> 1.3"
24
- spec.add_runtime_dependency "faraday", "~> 0.8.7"
25
- spec.add_runtime_dependency "multi_json", "~> 1.7.7"
26
- spec.add_runtime_dependency "rack", "~> 1.5.2"
27
- spec.add_runtime_dependency "redis-namespace", "~> 1.3.0"
28
- spec.add_runtime_dependency "thin", "~> 1.5.1"
29
- spec.add_runtime_dependency "thor", "~> 0.18.1"
23
+ spec.add_runtime_dependency "bundler", ">= 1.3"
24
+ spec.add_runtime_dependency "faraday", ">= 0.8.7"
25
+ spec.add_runtime_dependency "multi_json", ">= 1.7.7"
26
+ spec.add_runtime_dependency "rack", ">= 1.5.2"
27
+ spec.add_runtime_dependency "redis-namespace", ">= 1.3.0"
28
+ spec.add_runtime_dependency "thin", ">= 1.5.1"
29
+ spec.add_runtime_dependency "thor", ">= 0.18.1"
30
30
 
31
31
  spec.add_development_dependency "rake"
32
- spec.add_development_dependency "rspec", "~> 2.14"
32
+ spec.add_development_dependency "rspec", ">= 2.14"
33
33
  spec.add_development_dependency "simplecov"
34
34
  spec.add_development_dependency "coveralls"
35
35
  spec.add_development_dependency "pry"
@@ -9,6 +9,11 @@ describe Lita::Robot do
9
9
  expect { subject }.to raise_error(SystemExit)
10
10
  end
11
11
 
12
+ it "triggers a loaded event after initialization" do
13
+ expect_any_instance_of(described_class).to receive(:trigger).with(:loaded)
14
+ subject
15
+ end
16
+
12
17
  context "with registered handlers" do
13
18
  let(:handler1) { double("Handler 1").as_null_object }
14
19
  let(:handler2) { double("Handler 2").as_null_object }
@@ -102,5 +107,11 @@ describe Lita::Robot do
102
107
  expect_any_instance_of(Lita::Adapters::Shell).to receive(:shut_down)
103
108
  subject.shut_down
104
109
  end
110
+
111
+ it "triggers events for shut_down_started and shut_down_complete" do
112
+ expect(subject).to receive(:trigger).with(:shut_down_started).ordered
113
+ expect(subject).to receive(:trigger).with(:shut_down_complete).ordered
114
+ subject.shut_down
115
+ end
105
116
  end
106
117
  end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Cuadra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-05 00:00:00.000000000 Z
11
+ date: 2013-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.8.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.8.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: multi_json
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: 1.7.7
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
54
  version: 1.7.7
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.5.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.5.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: redis-namespace
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: 1.3.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.3.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: thin
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: 1.5.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.5.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: thor
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.18.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.18.1
111
111
  - !ruby/object:Gem::Dependency
@@ -126,14 +126,14 @@ dependencies:
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '2.14'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '2.14'
139
139
  - !ruby/object:Gem::Dependency