lita 4.6.0 → 4.8.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
- SHA1:
3
- metadata.gz: 411c330d69cc62203d31374e506722511a8582aa
4
- data.tar.gz: 36b57d4429140175ab4baa79a322dc13beac79c0
2
+ SHA256:
3
+ metadata.gz: 055bddddd7e8a6659039339de7eed646d12916e70869ca54be4e5d3547ec39fb
4
+ data.tar.gz: 4765f8c35b5e3f8deec77a3ea6a7a4333e4ce6220adefc713df7d51e966dc175
5
5
  SHA512:
6
- metadata.gz: 287c23415f235842e613290b117557624affe4e1357430e873128066f719d6a7d79fd1847a52a97c30b91d40d8a7a1cf6287c2044a05f619749d023bee55fd78
7
- data.tar.gz: 4a44d63d33e8420f474a48ef63311f4f324f272da4dedf60399e86ee3f69b7a1c9f29d61adb092a18759e1b1341ede9fe31b57026666d1f118668e138fbe3b5e
6
+ metadata.gz: 6ebf1592790f08cebd83768ab4cecb872ca33f200ad0b79d1de7e8e2495d28f5a8757054e3c4b641d199453be3aec8e8414b5e4c216c5c6df1fa9be98ac3d873
7
+ data.tar.gz: a5cee53960718b60109d95480bba07c8950ae42ec386169f87e9cbc18f7e91bfcaa85e1fdf609f76531080d8ef6639050d6d06b611cec3e29c23f49d528797f0
@@ -2,19 +2,18 @@ language: ruby
2
2
  sudo: false
3
3
  cache: bundler
4
4
  rvm:
5
- - 2.0
6
- - 2.1
7
- - 2.2
8
- - jruby-9.0.0.0
9
- - rbx-2
5
+ - 2.5
6
+ - 2.6
7
+ - 2.7
8
+ - jruby
10
9
  matrix:
11
10
  allow_failures:
12
11
  - rvm: jruby-9.0.0.0
13
- - rvm: rbx-2
14
12
  fast_finish: true
15
- script: bundle exec rake
13
+ script: script/ci
16
14
  before_install:
17
15
  - gem update --system
16
+ - gem update bundler
18
17
  services:
19
18
  - redis-server
20
19
  branches:
data/Rakefile CHANGED
@@ -1,8 +1 @@
1
1
  require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- require "rubocop/rake_task"
4
-
5
- RSpec::Core::RakeTask.new
6
- RuboCop::RakeTask.new
7
-
8
- task default: [:spec, :rubocop]
@@ -47,7 +47,7 @@ module Lita
47
47
  # @param hash [Hash] An optional hash of values to be interpolated in the string.
48
48
  # @return [String] The translated string.
49
49
  def translate(key, hash = {})
50
- I18n.translate("lita.adapters.#{namespace}.#{key}", hash)
50
+ I18n.translate("lita.adapters.#{namespace}.#{key}", **hash)
51
51
  end
52
52
 
53
53
  alias_method :t, :translate
@@ -12,7 +12,12 @@ module Lita
12
12
  I18n.reload!
13
13
  end
14
14
 
15
- # Sets I18n.locale, normalizing the provided locale name.
15
+ # Sets +I18n.locale+, normalizing the provided locale name.
16
+ #
17
+ # Note that setting this only affects the current thread. Since handler
18
+ # methods are dispatched in new threads, changing the locale globally will
19
+ # require calling this method at the start of every handler method.
20
+ # Alternatively, use {Lita#default_locale=} which will affect all threads.
16
21
  # @param new_locale [Symbol, String] The code of the locale to use.
17
22
  # @return [void]
18
23
  # @since 3.0.0
@@ -20,6 +25,16 @@ module Lita
20
25
  I18n.locale = new_locale.to_s.tr("_", "-")
21
26
  end
22
27
 
28
+ # Sets +I18n.default_locale+, normalizing the provided locale name.
29
+ #
30
+ # This is preferred over {Lita#locale=} as it affects all threads.
31
+ # @param new_locale [Symbol, String] The code of the locale to use.
32
+ # @return [void]
33
+ # @since 4.8.0
34
+ def default_locale=(new_locale)
35
+ I18n.default_locale = new_locale.to_s.tr("_", "-")
36
+ end
37
+
23
38
  # The absolute path to Lita's templates directory.
24
39
  # @return [String] The path.
25
40
  # @since 3.0.0
@@ -33,3 +48,4 @@ I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
33
48
  Lita.load_locales(Dir[File.join(Lita.template_root, "locales", "*.yml")])
34
49
  I18n.enforce_available_locales = false
35
50
  Lita.locale = ENV["LANG"] unless ENV["LANG"].nil?
51
+ Lita.default_locale = ENV["LANG"] unless ENV["LANG"].nil?
@@ -43,6 +43,7 @@ module Lita
43
43
  config.robot.name = "Lita"
44
44
  config.robot.adapter = :shell
45
45
  config.robot.locale = I18n.locale
46
+ config.robot.default_locale = I18n.default_locale
46
47
  config.robot.log_level = :info
47
48
  config.robot.admins = nil
48
49
  config.robot.log_formatter = nil
@@ -131,6 +131,7 @@ module Lita
131
131
  config :alias, type: String
132
132
  config :adapter, types: [String, Symbol], default: :shell
133
133
  config :locale, types: [String, Symbol], default: I18n.locale
134
+ config :default_locale, types: [String, Symbol], default: I18n.default_locale
134
135
  config :log_level, types: [String, Symbol], default: :info do
135
136
  validate do |value|
136
137
  unless LOG_LEVELS.include?(value.to_s.downcase.strip)
@@ -33,7 +33,7 @@ module Lita
33
33
  # @return [String] The translated string.
34
34
  # @since 3.0.0
35
35
  def translate(key, hash = {})
36
- I18n.translate("lita.handlers.#{namespace}.#{key}", hash)
36
+ I18n.translate("lita.handlers.#{namespace}.#{key}", **hash)
37
37
  end
38
38
 
39
39
  alias_method :t, :translate
@@ -40,7 +40,11 @@ module Lita
40
40
 
41
41
  # A hash of information about Redis.
42
42
  def redis_info
43
- @redis_info ||= redis.info
43
+ @redis_info ||= begin
44
+ r = redis.redis
45
+ r = r.redis while r.respond_to?(:redis)
46
+ r.info
47
+ end
44
48
  end
45
49
 
46
50
  # The current version of Redis.
@@ -11,6 +11,11 @@ module Lita
11
11
  # @return [Lita::Source] The message source.
12
12
  attr_reader :source
13
13
 
14
+ # A hash of arbitrary data that can be populated by Lita adapters and extensions.
15
+ # @return [Hash] The extension data.
16
+ # @since 4.7.0
17
+ attr_reader :extensions
18
+
14
19
  # @!method user
15
20
  # The user who sent the message.
16
21
  # @return [Lita::User] The user.
@@ -34,6 +39,7 @@ module Lita
34
39
  @robot = robot
35
40
  @body = body
36
41
  @source = source
42
+ @extensions = {}
37
43
 
38
44
  name_pattern = "@?#{Regexp.escape(@robot.mention_name)}[:,]?\\s+"
39
45
  alias_pattern = "#{Regexp.escape(@robot.alias)}\\s*" if @robot.alias
@@ -64,7 +64,6 @@ module Lita
64
64
  let(:robot) { Robot.new(registry) }
65
65
  let(:source) { Source.new(user: user) }
66
66
  let(:user) { User.create("1", name: "Test User") }
67
- let(:replies) { robot.chat_service.sent_messages }
68
67
  end
69
68
  end
70
69
 
@@ -76,6 +75,12 @@ module Lita
76
75
  end
77
76
  end
78
77
 
78
+ # An array of strings that have been sent by the robot during the course of a test.
79
+ # @return [Array<String>] The replies.
80
+ def replies
81
+ robot.chat_service.sent_messages
82
+ end
83
+
79
84
  # Sends a message to the robot.
80
85
  # @param body [String] The message to send.
81
86
  # @param as [Lita::User] The user sending the message.
@@ -23,7 +23,7 @@ module Lita
23
23
 
24
24
  # @param source [String] A string to use as the template's content.
25
25
  def initialize(source)
26
- @erb = ERB.new(source, $SAFE, "<>")
26
+ @erb = ERB.new(source, trim_mode: "<>")
27
27
  self.helpers = Set.new
28
28
  end
29
29
 
@@ -1,4 +1,4 @@
1
1
  module Lita
2
2
  # The current version of Lita.
3
- VERSION = "4.6.0"
3
+ VERSION = "4.8.0"
4
4
  end
@@ -18,23 +18,23 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.required_ruby_version = ">= 2.0.0"
21
+ spec.required_ruby_version = ">= 2.5.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 "http_router", ">= 0.11.2"
26
- spec.add_runtime_dependency "ice_nine", ">= 0.11.0"
27
- spec.add_runtime_dependency "i18n", ">= 0.6.9"
28
- spec.add_runtime_dependency "multi_json", ">= 1.7.7"
29
- spec.add_runtime_dependency "puma", ">= 2.7.1"
30
- spec.add_runtime_dependency "rack", ">= 1.5.2"
31
- spec.add_runtime_dependency "rb-readline", ">= 0.5.1"
32
- spec.add_runtime_dependency "redis-namespace", ">= 1.3.0"
33
- spec.add_runtime_dependency "thor", ">= 0.18.1"
23
+ spec.add_runtime_dependency "bundler", ">= 2.0"
24
+ spec.add_runtime_dependency "faraday", ">= 1.0"
25
+ spec.add_runtime_dependency "http_router", ">= 0.11"
26
+ spec.add_runtime_dependency "ice_nine", ">= 0.11"
27
+ spec.add_runtime_dependency "i18n", ">= 1.8"
28
+ spec.add_runtime_dependency "multi_json", ">= 1.15"
29
+ spec.add_runtime_dependency "puma", ">= 4.3"
30
+ spec.add_runtime_dependency "rack", ">= 2.2"
31
+ spec.add_runtime_dependency "rb-readline", ">= 0.5"
32
+ spec.add_runtime_dependency "redis-namespace", ">= 1.7"
33
+ spec.add_runtime_dependency "thor", ">= 1.0"
34
34
 
35
35
  spec.add_development_dependency "rake"
36
36
  spec.add_development_dependency "rack-test"
37
- spec.add_development_dependency "rspec", ">= 3.0.0"
37
+ spec.add_development_dependency "rspec"
38
38
  spec.add_development_dependency "simplecov"
39
39
  spec.add_development_dependency "coveralls"
40
40
  spec.add_development_dependency "pry"
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+
3
+ bundle exec rspec
4
+ bundle exec rubocop
@@ -3,6 +3,15 @@ require "spec_helper"
3
3
  describe Lita::ConfigurationBuilder do
4
4
  let(:config) { subject.build }
5
5
 
6
+ # For some reason RSpec is no longer capturing tracebacks to
7
+ # stderr, so we do it manually to avoid cluttering the test output.
8
+ around do |example|
9
+ stderr = $stderr
10
+ $stderr = StringIO.new
11
+ example.run
12
+ $stderr = stderr
13
+ end
14
+
6
15
  describe ".load_user_config" do
7
16
  it "loads and evals lita_config.rb" do
8
17
  allow(File).to receive(:exist?).and_return(true)
@@ -233,6 +233,16 @@ describe Lita::DefaultConfiguration, lita: true do
233
233
  expect(config.robot.locale).to eq(:es)
234
234
  end
235
235
 
236
+ it "has a default default locale" do
237
+ expect(config.robot.default_locale).to eq(I18n.default_locale)
238
+ end
239
+
240
+ it "can set a default locale" do
241
+ config.robot.default_locale = :es
242
+
243
+ expect(config.robot.default_locale).to eq(:es)
244
+ end
245
+
236
246
  it "has a default log level" do
237
247
  expect(config.robot.log_level).to eq(:info)
238
248
  end
@@ -92,7 +92,7 @@ describe handler, lita_handler: true do
92
92
  it "calls the error handler with the exception as argument" do
93
93
  expect(registry.config.robot.error_handler).to receive(:call).with(instance_of(TypeError))
94
94
 
95
- expect { http.get("/boom") }.to raise_error(TypeError, "String can't be coerced into Fixnum")
95
+ expect { http.get("/boom") }.to raise_error(TypeError, "String can't be coerced into Integer")
96
96
  end
97
97
  end
98
98
  end
@@ -21,6 +21,14 @@ describe Lita::Message do
21
21
  expect(subject.source).to eq(source)
22
22
  end
23
23
 
24
+ describe "#extensions" do
25
+ it "can be populated with arbitrary data" do
26
+ subject.extensions[:foo] = :bar
27
+
28
+ expect(subject.extensions[:foo]).to eq(:bar)
29
+ end
30
+ end
31
+
24
32
  describe "#args" do
25
33
  it "returns an array of the 2nd through nth word in the message" do
26
34
  subject = described_class.new(robot, "args foo bar", source)
@@ -77,6 +77,15 @@ describe Lita::Robot, lita: true do
77
77
  describe "#run" do
78
78
  let(:thread) { instance_double("Thread", :abort_on_exception= => true, join: nil) }
79
79
 
80
+ # For some reason RSpec is no longer capturing tracebacks to
81
+ # stderr, so we do it manually to avoid cluttering the test output.
82
+ around do |example|
83
+ stderr = $stderr
84
+ $stderr = StringIO.new
85
+ example.run
86
+ $stderr = stderr
87
+ end
88
+
80
89
  before do
81
90
  allow_any_instance_of(Lita::Adapters::Shell).to receive(:run)
82
91
  allow_any_instance_of(Puma::Server).to receive(:run)
@@ -117,6 +117,12 @@ describe handler_class, lita_handler: true do
117
117
  send_message("message")
118
118
  expect(replies).to eq(["Test User"])
119
119
  end
120
+
121
+ it "does not memoize #replies on first access" do
122
+ replies
123
+ send_message("message")
124
+ expect(replies).to eq(["Test User"])
125
+ end
120
126
  end
121
127
 
122
128
  describe "#channel" do
@@ -58,6 +58,13 @@ describe Lita do
58
58
  end
59
59
  end
60
60
 
61
+ describe ".default_locale=" do
62
+ it "sets I18n.default_locale to the normalized locale" do
63
+ expect(I18n).to receive(:default_locale=).with("zh-TW")
64
+ described_class.default_locale = "zh_TW"
65
+ end
66
+ end
67
+
61
68
  describe ".redis" do
62
69
  let(:redis_namespace) { instance_double("Redis") }
63
70
 
@@ -84,8 +91,15 @@ describe Lita do
84
91
  around do |example|
85
92
  test_mode = Lita.test_mode?
86
93
  Lita.test_mode = false
94
+
95
+ stderr = $stderr
96
+ $stderr = StringIO.new
97
+
87
98
  example.run
99
+
88
100
  Lita.test_mode = test_mode
101
+
102
+ $stderr = stderr
89
103
  end
90
104
 
91
105
  it "logs a fatal warning and raises an exception if it can't connect to Redis" do
@@ -1,9 +1,4 @@
1
1
  require "simplecov"
2
- require "coveralls"
3
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
- SimpleCov::Formatter::HTMLFormatter,
5
- Coveralls::SimpleCov::Formatter
6
- ]
7
2
  SimpleCov.start { add_filter "/spec/" }
8
3
 
9
4
  require "pry"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.0
4
+ version: 4.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Cuadra
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-29 00:00:00.000000000 Z
11
+ date: 2020-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,154 +16,154 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '2.0'
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
- version: '1.3'
26
+ version: '2.0'
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
- version: 0.8.7
33
+ version: '1.0'
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
- version: 0.8.7
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: http_router
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.11.2
47
+ version: '0.11'
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
- version: 0.11.2
54
+ version: '0.11'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: ice_nine
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.11.0
61
+ version: '0.11'
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
- version: 0.11.0
68
+ version: '0.11'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: i18n
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.6.9
75
+ version: '1.8'
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
- version: 0.6.9
82
+ version: '1.8'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: multi_json
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 1.7.7
89
+ version: '1.15'
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
- version: 1.7.7
96
+ version: '1.15'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: puma
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 2.7.1
103
+ version: '4.3'
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
- version: 2.7.1
110
+ version: '4.3'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rack
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 1.5.2
117
+ version: '2.2'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 1.5.2
124
+ version: '2.2'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rb-readline
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 0.5.1
131
+ version: '0.5'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 0.5.1
138
+ version: '0.5'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: redis-namespace
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 1.3.0
145
+ version: '1.7'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 1.3.0
152
+ version: '1.7'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: thor
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 0.18.1
159
+ version: '1.0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 0.18.1
166
+ version: '1.0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - ">="
200
200
  - !ruby/object:Gem::Version
201
- version: 3.0.0
201
+ version: '0'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - ">="
207
207
  - !ruby/object:Gem::Version
208
- version: 3.0.0
208
+ version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: simplecov
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -332,6 +332,7 @@ files:
332
332
  - lib/lita/util.rb
333
333
  - lib/lita/version.rb
334
334
  - lita.gemspec
335
+ - script/ci
335
336
  - spec/lita/adapter_spec.rb
336
337
  - spec/lita/adapters/shell_spec.rb
337
338
  - spec/lita/authorization_spec.rb
@@ -390,7 +391,7 @@ homepage: https://github.com/jimmycuadra/lita
390
391
  licenses:
391
392
  - MIT
392
393
  metadata: {}
393
- post_install_message:
394
+ post_install_message:
394
395
  rdoc_options: []
395
396
  require_paths:
396
397
  - lib
@@ -398,16 +399,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
398
399
  requirements:
399
400
  - - ">="
400
401
  - !ruby/object:Gem::Version
401
- version: 2.0.0
402
+ version: 2.5.0
402
403
  required_rubygems_version: !ruby/object:Gem::Requirement
403
404
  requirements:
404
405
  - - ">="
405
406
  - !ruby/object:Gem::Version
406
407
  version: '0'
407
408
  requirements: []
408
- rubyforge_project:
409
- rubygems_version: 2.4.5.1
410
- signing_key:
409
+ rubygems_version: 3.1.4
410
+ signing_key:
411
411
  specification_version: 4
412
412
  summary: ChatOps framework for Ruby. Lita is a robot companion for your chat room.
413
413
  test_files:
@@ -450,4 +450,3 @@ test_files:
450
450
  - spec/templates/basic.irc.erb
451
451
  - spec/templates/helpers.erb
452
452
  - spec/templates/interpolated.erb
453
- has_rdoc: