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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +42 -23
- data/README.md +147 -120
- data/grape-slack-bot.gemspec +15 -10
- data/lib/slack_bot/api_client.rb +127 -33
- data/lib/slack_bot/args.rb +2 -0
- data/lib/slack_bot/callback.rb +29 -4
- data/lib/slack_bot/callback_storage.rb +3 -3
- data/lib/slack_bot/config.rb +4 -0
- data/lib/slack_bot/errors.rb +20 -0
- data/lib/slack_bot/grape_extension.rb +76 -21
- data/lib/slack_bot/interaction.rb +5 -1
- data/lib/slack_bot/logger.rb +15 -0
- data/lib/slack_bot/menu_options.rb +4 -0
- data/lib/slack_bot/view.rb +6 -2
- data/lib/slack_bot.rb +4 -1
- data/sig/slack_bot.rbs +379 -0
- metadata +114 -34
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:
|
|
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:
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
79
|
+
version: '9.0'
|
|
69
80
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
81
|
+
name: rspec
|
|
71
82
|
requirement: !ruby/object:Gem::Requirement
|
|
72
83
|
requirements:
|
|
73
84
|
- - "~>"
|
|
74
85
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
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: '
|
|
93
|
+
version: '3.12'
|
|
83
94
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
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:
|
|
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:
|
|
165
|
+
name: standard
|
|
127
166
|
requirement: !ruby/object:Gem::Requirement
|
|
128
167
|
requirements:
|
|
129
168
|
- - "~>"
|
|
130
169
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '0
|
|
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
|
|
177
|
+
version: '1.0'
|
|
139
178
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name:
|
|
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
|
-
-
|
|
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.
|
|
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: []
|