grape-slack-bot 1.8.2 → 2.0.0

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.
data/sig/slack_bot.rbs ADDED
@@ -0,0 +1,379 @@
1
+ module SlackBot
2
+ VERSION: String
3
+
4
+ class Error < StandardError
5
+ end
6
+
7
+ module Errors
8
+ class SignatureAuthenticationError < Error
9
+ end
10
+
11
+ class TeamAuthenticationError < Error
12
+ end
13
+
14
+ class ChannelAuthenticationError < Error
15
+ end
16
+
17
+ class UserAuthenticationError < Error
18
+ end
19
+
20
+ class SlashCommandNotImplemented < Error
21
+ end
22
+
23
+ class MenuOptionsNotImplemented < Error
24
+ end
25
+
26
+ class CallbackNotFound < Error
27
+ end
28
+
29
+ class HandlerClassNotFound < Error
30
+ attr_reader class_name: String
31
+ attr_reader handler_classes: Hash[Symbol, Class]
32
+ def initialize: (String class_name, handler_classes: Hash[Symbol, Class]) -> void
33
+ end
34
+
35
+ class InteractionClassNotImplemented < Error
36
+ attr_reader class_name: String
37
+ def initialize: (String class_name) -> void
38
+ end
39
+
40
+ class ViewClassNotImplemented < Error
41
+ attr_reader class_name: String
42
+ def initialize: (String class_name) -> void
43
+ end
44
+
45
+ class SlackResponseError < Error
46
+ attr_reader error: String
47
+ attr_reader data: Hash[String, untyped]?
48
+ attr_reader payload: Hash[String, untyped]?
49
+ def initialize: (String error, ?data: Hash[String, untyped]?, ?payload: Hash[String, untyped]?) -> void
50
+ end
51
+
52
+ class OpenModalError < SlackResponseError
53
+ end
54
+
55
+ class UpdateModalError < SlackResponseError
56
+ end
57
+
58
+ class PublishViewError < SlackResponseError
59
+ end
60
+
61
+ class CallbackUserMismatchError < Error
62
+ end
63
+
64
+ class InvalidPayloadError < Error
65
+ end
66
+
67
+ class SlackApiError < Error
68
+ end
69
+
70
+ class UnknownActionTypeError < Error
71
+ attr_reader action_type: String
72
+ def initialize: (String action_type) -> void
73
+ end
74
+
75
+ class NotImplementedError < Error
76
+ end
77
+ end
78
+
79
+ class Config
80
+ def self.current_instance: () -> Config
81
+ def self.configure: () { (Config) -> void } -> void
82
+
83
+ attr_reader callback_storage_instance: untyped
84
+ def callback_storage: (untyped klass) -> void
85
+
86
+ attr_reader callback_user_finder_method: Proc
87
+ def callback_user_finder: (Proc method_lambda) -> void
88
+
89
+ def interaction: (Class interaction_klass, ?handler_name: String?) -> void
90
+ def event_handlers: () -> Hash[Symbol, Class]
91
+ def event: (Symbol event_type, Class event_klass, ?handler_name: String?) -> void
92
+ def find_event_handler: (Symbol event_type) -> Class?
93
+
94
+ def slash_command_endpoint: (Symbol url_token, ?Class command_klass, ?handler_name: String?) { (SlashCommandEndpointConfig) -> void } -> SlashCommandEndpointConfig
95
+ def slash_command_endpoints: () -> Hash[Symbol, SlashCommandEndpointConfig]
96
+ def find_slash_command_config: (Symbol url_token, String command, String text) -> SlashCommandConfig?
97
+
98
+ def menu_options: (Symbol action_id, Class klass) -> void
99
+ def find_menu_options: (Symbol action_id) -> Class?
100
+
101
+ def handler_class: (String class_name, Class klass) -> void
102
+ def find_handler_class: (String class_name) -> Class
103
+ end
104
+
105
+ class SlashCommandEndpointConfig
106
+ attr_reader url_token: Symbol
107
+ attr_reader command_klass: Class?
108
+ attr_reader routes: Hash[String, SlashCommandConfig]
109
+ attr_reader config: Config
110
+
111
+ def initialize: (Symbol url_token, config: Config, ?command_klass: Class?, ?routes: Hash[String, SlashCommandConfig], ?handler_name: String?) -> void
112
+
113
+ def command: (Symbol command_token, Class command_klass, ?handler_name: String?) { (SlashCommandConfig) -> void } -> SlashCommandConfig
114
+ def command_configs: () -> Hash[Symbol, SlashCommandConfig]
115
+ def find_command_config: (String text) -> SlashCommandConfig?
116
+ def full_token: () -> String
117
+ end
118
+
119
+ class SlashCommandConfig
120
+ def self.delimiter: () -> String
121
+
122
+ attr_accessor command_klass: Class
123
+ attr_accessor token: Symbol
124
+ attr_accessor parent_configs: Array[SlashCommandConfig]
125
+ attr_accessor endpoint: SlashCommandEndpointConfig
126
+
127
+ def initialize: (command_klass: Class, token: Symbol, endpoint: SlashCommandEndpointConfig, ?parent_configs: Array[SlashCommandConfig], ?handler_name: String?) -> void
128
+
129
+ def argument_command: (Symbol argument_token, ?Class klass) { (SlashCommandConfig) -> void } -> SlashCommandConfig
130
+ def find_argument_command_config: (Symbol argument_token) -> SlashCommandConfig?
131
+ def full_token: () -> String
132
+ def url_token: () -> Symbol
133
+ end
134
+
135
+ class ArgsParser
136
+ def initialize: (String args) -> void
137
+ def call: () -> Hash[String, String]
138
+ end
139
+
140
+ class ArgsBuilder
141
+ def initialize: (Hash[String, untyped] args) -> void
142
+ def call: () -> String
143
+ end
144
+
145
+ class Args
146
+ attr_accessor args: Hash[String, untyped]
147
+
148
+ def initialize: (?builder: Class, ?parser: Class) -> void
149
+ def []: (String key) -> untyped
150
+ def []=: (String key, untyped value) -> void
151
+ def raw_args=: (String raw_args) -> void
152
+ def to_s: () -> String
153
+ def merge: (**untyped other_args) -> Args
154
+ def except: (*Symbol keys) -> Args
155
+ end
156
+
157
+ class ApiResponse
158
+ attr_reader response: Faraday::Response
159
+
160
+ def initialize: () { () -> Faraday::Response } -> void
161
+ def ok?: () -> bool
162
+ def error: () -> String?
163
+ def data: () -> Hash[String, untyped]
164
+ end
165
+
166
+ class ApiClient
167
+ attr_reader client: Faraday::Connection
168
+
169
+ def initialize: (?authorization_token: String) -> void
170
+
171
+ def views_open: (trigger_id: String, view: Hash[String, untyped]) -> ApiResponse
172
+ def views_update: (view_id: String, view: Hash[String, untyped]) -> ApiResponse
173
+ def views_publish: (user_id: String, view: Hash[String, untyped]) -> ApiResponse
174
+ def chat_post_message: (channel: String, text: String, blocks: Array[Hash[String, untyped]]) -> ApiResponse
175
+ def chat_update: (channel: String, ts: String, text: String, blocks: Array[Hash[String, untyped]]) -> ApiResponse
176
+ def chat_delete: (channel: String, ts: String) -> ApiResponse
177
+ def chat_unfurl: (channel: String, ts: String, unfurls: Hash[String, untyped], ?source: String?, ?unfurl_id: String?, ?user_auth_blocks: Array[Hash[String, untyped]]?, ?user_auth_message: String?, ?user_auth_required: bool?, ?user_auth_url: String?) -> ApiResponse
178
+ def chat_schedule_message: (channel: String, text: String, post_at: Integer, ?blocks: Array[Hash[String, untyped]]?) -> ApiResponse
179
+ def scheduled_messages_list: (?channel: String?, ?cursor: String?, ?latest: Integer?, ?limit: Integer?, ?oldest: Integer?, ?team_id: String?) -> ApiResponse
180
+ def chat_delete_scheduled_message: (channel: String, scheduled_message_id: String) -> ApiResponse
181
+ def chat_get_permalink: (channel: String, message_ts: String) -> ApiResponse
182
+ def users_info: (user_id: String) -> ApiResponse
183
+ def users_list: (?cursor: String?, ?limit: Integer, ?include_locale: bool?, ?team_id: String?) -> ApiResponse
184
+ def chat_post_ephemeral: (channel: String, user: String, text: String, ?as_user: bool?, ?attachments: Array[Hash[String, untyped]]?, ?blocks: Array[Hash[String, untyped]]?, ?icon_emoji: String?, ?icon_url: String?, ?link_names: bool?, ?parse: String?, ?thread_ts: String?, ?username: String?) -> ApiResponse
185
+ end
186
+
187
+ class Callback
188
+ CALLBACK_KEY_PREFIX: String
189
+ CALLBACK_RECORD_EXPIRES_IN: ActiveSupport::Duration
190
+
191
+ def self.find: (String? id, ?user: untyped, ?config: Config) -> Callback?
192
+ def self.find_by_view_id: (String view_id, ?user: untyped, ?config: Config) -> Callback?
193
+ def self.create: (class_name: String, user: untyped, ?id: String?, ?channel_id: String?, ?config: Config?, ?payload: Hash[String, untyped]?, ?expires_in: ActiveSupport::Duration?, ?user_scope: bool?) -> Callback
194
+ def self.find_or_create: (id: String, class_name: String, user: untyped, ?channel_id: String?, ?config: Config?, ?payload: Hash[String, untyped]?, ?expires_in: ActiveSupport::Duration?, ?user_scope: bool?) -> Callback
195
+
196
+ attr_reader id: String?
197
+ attr_reader data: Hash[Symbol, untyped]
198
+ attr_reader args: Args
199
+ attr_reader config: Config
200
+ attr_reader expires_in: ActiveSupport::Duration
201
+ attr_reader user_scope: bool
202
+
203
+ def initialize: (?id: String?, ?class_name: String?, ?user: untyped, ?channel_id: String?, ?payload: Hash[String, untyped]?, ?config: Config?, ?expires_in: ActiveSupport::Duration?, ?user_scope: bool?, ?view_id: String?) -> void
204
+
205
+ def reload: () -> self
206
+ def save: () -> void
207
+ def update: (Hash[String, untyped] payload) -> void
208
+ def destroy: () -> void
209
+
210
+ def user: () -> untyped
211
+ def user=: (untyped user) -> void
212
+ def class_name=: (String class_name) -> void
213
+ def channel_id=: (String channel_id) -> void
214
+ def payload=: (Hash[String, untyped] payload) -> void
215
+ def view_id=: (String view_id) -> void
216
+ def handler_class=: (Class handler_class) -> void
217
+ def handler_class: () -> Class?
218
+
219
+ def read_view_callback_id: () -> String?
220
+ end
221
+
222
+ class Command
223
+ attr_reader current_user: untyped
224
+ attr_reader params: Hash[String, untyped]
225
+ attr_reader args: Args
226
+ attr_reader config: Config
227
+
228
+ def initialize: (current_user: untyped, params: Hash[String, untyped], args: String, ?config: Config) -> void
229
+
230
+ def command: () -> String
231
+ def text: () -> String
232
+ def only_user?: () -> bool
233
+ def only_direct_message?: () -> bool
234
+ def only_slack_team?: () -> bool
235
+ def render_response: (?String response_type, **untyped kwargs) -> Hash[String, untyped]?
236
+ end
237
+
238
+ class Interaction
239
+ class SlackViewsReply
240
+ attr_reader callback_id: String?
241
+ attr_reader view_id: String?
242
+ def initialize: (?callback_id: String?, ?view_id: String?) -> void
243
+ end
244
+
245
+ def self.open_modal: (callback: Callback?, trigger_id: String, view: Hash[String, untyped]) -> SlackViewsReply
246
+ def self.update_modal: (callback: Callback?, view_id: String, view: Hash[String, untyped]) -> SlackViewsReply
247
+ def self.publish_view: (user_id: String, view: Hash[String, untyped], ?callback: Callback?, ?metadata: Hash[String, untyped]?) -> SlackViewsReply
248
+
249
+ attr_reader current_user: untyped?
250
+ attr_reader params: Hash[String, untyped]?
251
+ attr_reader callback: Callback?
252
+ attr_reader config: Config
253
+
254
+ def initialize: (?current_user: untyped, ?params: Hash[String, untyped], ?callback: Callback?, ?config: Config) -> void
255
+
256
+ def call: () -> untyped
257
+ end
258
+
259
+ class Event
260
+ attr_reader current_user: untyped?
261
+ attr_reader params: Hash[String, untyped]?
262
+ attr_reader config: Config
263
+ attr_reader callback: Callback?
264
+ attr_reader metadata: Hash[String, untyped]?
265
+
266
+ def initialize: (?current_user: untyped, ?params: Hash[String, untyped], ?callback: Callback?, ?config: Config) -> void
267
+
268
+ def call: () -> untyped
269
+ end
270
+
271
+ class View
272
+ attr_reader args: Args?
273
+ attr_reader current_user: untyped
274
+ attr_reader params: Hash[String, untyped]
275
+ attr_reader context: Hash[String, untyped]?
276
+ attr_reader config: Config
277
+
278
+ def initialize: (current_user: untyped, params: Hash[String, untyped], ?args: Args, ?context: Hash[String, untyped], ?config: Config) -> void
279
+
280
+ def text_modal: () -> Hash[String, untyped]
281
+ end
282
+
283
+ class Pager
284
+ DEFAULT_PAGE: Integer
285
+ DEFAULT_LIMIT: Integer
286
+
287
+ attr_reader source_cursor: ActiveRecord::Relation
288
+ attr_reader args: Args
289
+ attr_reader limit: Integer
290
+ attr_reader page: Integer
291
+
292
+ def initialize: (ActiveRecord::Relation source_cursor, args: Args, ?limit: Integer, ?page: Integer) -> void
293
+
294
+ def total_count: () -> Integer
295
+ def pages_count: () -> Integer
296
+ def offset: () -> Integer
297
+ def cursor: () -> ActiveRecord::Relation
298
+ end
299
+
300
+ module GrapeHelpers
301
+ def fetch_team_id: () -> String?
302
+ def fetch_user_id: () -> String?
303
+ def verify_slack_signature!: () -> bool
304
+ def verify_slack_team!: () -> bool
305
+ def verify_direct_message_channel!: () -> bool
306
+ def verify_current_user!: () -> bool
307
+ def events_callback: (Hash[String, untyped] params) -> untyped
308
+ def url_verification: (Hash[String, untyped] params) -> Hash[String, String]
309
+ def handle_block_actions_view: (view: Hash[String, untyped]?, user: untyped, params: Hash[String, untyped]) -> untyped
310
+ end
311
+
312
+ module GrapeExtension
313
+ def self.included: (Class base) -> void
314
+ end
315
+
316
+ class CallbackStorage
317
+ def read: (String key) -> untyped
318
+ def write: (String key, untyped value, ?expires_in: ActiveSupport::Duration) -> void
319
+ def delete: (String key) -> void
320
+ end
321
+
322
+ class Logger
323
+ def self.error: (*untyped args, **untyped kwargs) -> void
324
+ def self.info: (*untyped args, **untyped kwargs) -> void
325
+ def self.warn: (*untyped args, **untyped kwargs) -> void
326
+ def self.debug: (*untyped args, **untyped kwargs) -> void
327
+ end
328
+
329
+ class DevConsole
330
+ def self.logger=: (Logger logger) -> void
331
+ def self.logger: () -> Logger
332
+ def self.enabled=: (bool enabled) -> void
333
+ def self.enabled?: () -> bool?
334
+ def self.log: (?String message) { () -> String } -> void
335
+ def self.log_input: (?String message) { () -> String } -> void
336
+ def self.log_output: (?String message) { () -> String } -> void
337
+ def self.log_check: (?String message) { () -> String } -> void
338
+ end
339
+
340
+ class MenuOptions
341
+ attr_reader current_user: untyped
342
+ attr_reader params: Hash[String, untyped]
343
+ attr_reader config: Config
344
+
345
+ def initialize: (current_user: untyped, params: Hash[String, untyped], ?config: Config) -> void
346
+
347
+ def call: () -> Array[Hash[String, untyped]]
348
+ end
349
+
350
+ module Concerns
351
+ module ViewKlass
352
+ def self.included: (Class base) -> void
353
+
354
+ module ClassMethods
355
+ def view_klass: () -> Class
356
+ def view: (Class klass) -> void
357
+ end
358
+ end
359
+
360
+ module InteractionKlass
361
+ def self.included: (Class base) -> void
362
+
363
+ module ClassMethods
364
+ def interaction_klass: () -> Class
365
+ def interaction: (Class klass) -> void
366
+ end
367
+ end
368
+
369
+ module PagerKlass
370
+ def self.included: (Class base) -> void
371
+
372
+ module ClassMethods
373
+ def pager_klass: () -> Class
374
+ def pager: (Class klass) -> void
375
+ end
376
+ end
377
+ end
378
+ end
379
+
metadata CHANGED
@@ -1,87 +1,98 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-slack-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rack
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ">"
16
+ - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '2'
18
+ version: '3.0'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - ">"
23
+ - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '2'
25
+ version: '3.0'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: grape
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - ">"
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.6'
33
+ - - "<"
32
34
  - !ruby/object:Gem::Version
33
- version: '1'
35
+ version: '3.0'
34
36
  type: :runtime
35
37
  prerelease: false
36
38
  version_requirements: !ruby/object:Gem::Requirement
37
39
  requirements:
38
- - - ">"
40
+ - - ">="
39
41
  - !ruby/object:Gem::Version
40
- version: '1'
42
+ version: '1.6'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: faraday
43
48
  requirement: !ruby/object:Gem::Requirement
44
49
  requirements:
45
- - - ">"
50
+ - - "~>"
46
51
  - !ruby/object:Gem::Version
47
- version: '1'
52
+ version: '2.0'
48
53
  type: :runtime
49
54
  prerelease: false
50
55
  version_requirements: !ruby/object:Gem::Requirement
51
56
  requirements:
52
- - - ">"
57
+ - - "~>"
53
58
  - !ruby/object:Gem::Version
54
- version: '1'
59
+ version: '2.0'
55
60
  - !ruby/object:Gem::Dependency
56
61
  name: activesupport
57
62
  requirement: !ruby/object:Gem::Requirement
58
63
  requirements:
59
- - - ">"
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '6.1'
67
+ - - "<"
60
68
  - !ruby/object:Gem::Version
61
- version: '5'
69
+ version: '9.0'
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
65
73
  requirements:
66
- - - ">"
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '6.1'
77
+ - - "<"
67
78
  - !ruby/object:Gem::Version
68
- version: '5'
79
+ version: '9.0'
69
80
  - !ruby/object:Gem::Dependency
70
- name: bundler
81
+ name: rspec
71
82
  requirement: !ruby/object:Gem::Requirement
72
83
  requirements:
73
84
  - - "~>"
74
85
  - !ruby/object:Gem::Version
75
- version: '2'
86
+ version: '3.12'
76
87
  type: :development
77
88
  prerelease: false
78
89
  version_requirements: !ruby/object:Gem::Requirement
79
90
  requirements:
80
91
  - - "~>"
81
92
  - !ruby/object:Gem::Version
82
- version: '2'
93
+ version: '3.12'
83
94
  - !ruby/object:Gem::Dependency
84
- name: rspec
95
+ name: webmock
85
96
  requirement: !ruby/object:Gem::Requirement
86
97
  requirements:
87
98
  - - "~>"
@@ -94,6 +105,34 @@ dependencies:
94
105
  - - "~>"
95
106
  - !ruby/object:Gem::Version
96
107
  version: '3'
108
+ - !ruby/object:Gem::Dependency
109
+ name: rake
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '13.0'
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '13.0'
122
+ - !ruby/object:Gem::Dependency
123
+ name: simplecov
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '0.21'
129
+ type: :development
130
+ prerelease: false
131
+ version_requirements: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '0.21'
97
136
  - !ruby/object:Gem::Dependency
98
137
  name: rspec_junit_formatter
99
138
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +148,7 @@ dependencies:
109
148
  - !ruby/object:Gem::Version
110
149
  version: '0.6'
111
150
  - !ruby/object:Gem::Dependency
112
- name: webmock
151
+ name: simplecov-cobertura
113
152
  requirement: !ruby/object:Gem::Requirement
114
153
  requirements:
115
154
  - - "~>"
@@ -123,36 +162,78 @@ dependencies:
123
162
  - !ruby/object:Gem::Version
124
163
  version: '3'
125
164
  - !ruby/object:Gem::Dependency
126
- name: simplecov
165
+ name: standard
127
166
  requirement: !ruby/object:Gem::Requirement
128
167
  requirements:
129
168
  - - "~>"
130
169
  - !ruby/object:Gem::Version
131
- version: '0.21'
170
+ version: '1.0'
132
171
  type: :development
133
172
  prerelease: false
134
173
  version_requirements: !ruby/object:Gem::Requirement
135
174
  requirements:
136
175
  - - "~>"
137
176
  - !ruby/object:Gem::Version
138
- version: '0.21'
177
+ version: '1.0'
139
178
  - !ruby/object:Gem::Dependency
140
- name: simplecov-cobertura
179
+ name: appraisal
180
+ requirement: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: '2.4'
185
+ type: :development
186
+ prerelease: false
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '2.4'
192
+ - !ruby/object:Gem::Dependency
193
+ name: memory_profiler
194
+ requirement: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "~>"
197
+ - !ruby/object:Gem::Version
198
+ version: '1.0'
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - "~>"
204
+ - !ruby/object:Gem::Version
205
+ version: '1.0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: rbs
208
+ requirement: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - "~>"
211
+ - !ruby/object:Gem::Version
212
+ version: '3.0'
213
+ type: :development
214
+ prerelease: false
215
+ version_requirements: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '3.0'
220
+ - !ruby/object:Gem::Dependency
221
+ name: rack-test
141
222
  requirement: !ruby/object:Gem::Requirement
142
223
  requirements:
143
224
  - - "~>"
144
225
  - !ruby/object:Gem::Version
145
- version: '2'
226
+ version: '2.0'
146
227
  type: :development
147
228
  prerelease: false
148
229
  version_requirements: !ruby/object:Gem::Requirement
149
230
  requirements:
150
231
  - - "~>"
151
232
  - !ruby/object:Gem::Version
152
- version: '2'
233
+ version: '2.0'
153
234
  description: Slack bot implementation for ruby-grape
154
235
  email:
155
- - andrei@kiskolabs.com
236
+ - contact@kiskolabs.com
156
237
  executables: []
157
238
  extensions: []
158
239
  extra_rdoc_files: []
@@ -181,6 +262,7 @@ files:
181
262
  - lib/slack_bot/menu_options.rb
182
263
  - lib/slack_bot/pager.rb
183
264
  - lib/slack_bot/view.rb
265
+ - sig/slack_bot.rbs
184
266
  homepage: https://github.com/amkisko/grape-slack-bot.rb
185
267
  licenses:
186
268
  - MIT
@@ -190,7 +272,6 @@ metadata:
190
272
  bug_tracker_uri: https://github.com/amkisko/grape-slack-bot.rb/issues
191
273
  changelog_uri: https://github.com/amkisko/grape-slack-bot.rb/blob/main/CHANGELOG.md
192
274
  rubygems_mfa_required: 'true'
193
- post_install_message:
194
275
  rdoc_options: []
195
276
  require_paths:
196
277
  - lib
@@ -205,8 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
286
  - !ruby/object:Gem::Version
206
287
  version: '0'
207
288
  requirements: []
208
- rubygems_version: 3.5.11
209
- signing_key:
289
+ rubygems_version: 3.6.9
210
290
  specification_version: 4
211
291
  summary: Slack bot implementation for ruby-grape
212
292
  test_files: []