Class: Ruboty::Adapters::SlackEvents
- Inherits:
-
Base
- Object
- Base
- Ruboty::Adapters::SlackEvents
- Defined in:
- lib/ruboty/adapters/slack_events.rb,
lib/ruboty/adapters/slack_events/slack_events_handler.rb
Defined Under Namespace
Classes: SlackEventsHandler
Instance Method Summary collapse
- #ignore_bot_message? ⇒ Boolean
-
#resolvers ⇒ Object
: ::Ruboty::SlackEvents::UserRepository.
-
#rubotify ⇒ Object
: ::Ruboty::SlackEvents::Filter::Rubotify.
-
#run ⇒ Object
@rbs! type robotMessage = { body: String, from: String, to: String, original: receivedMessage?, code: boolish?, } type receivedMessage = { body: String, from: String, from_name: String, to: String, thread_ts: String?, }.
- #say(message) ⇒ Object
-
#slack_client ⇒ Object
: Slack::Web::Client.
-
#slackify ⇒ Object
: ::Ruboty::SlackEvents::Filter::Slackify.
Instance Method Details
#ignore_bot_message? ⇒ Boolean
73 74 75 |
# File 'lib/ruboty/adapters/slack_events.rb', line 73 def [nil, "", "false"].none?(ENV.fetch("SLACK_IGNORE_BOT_MESSAGE", nil)) end |
#resolvers ⇒ Object
: ::Ruboty::SlackEvents::UserRepository
61 62 63 |
# File 'lib/ruboty/adapters/slack_events.rb', line 61 def resolvers #: ::Ruboty::SlackEvents::UserRepository @resolvers ||= ::Ruboty::SlackEvents::Resolvers.new(slack_client:) end |
#rubotify ⇒ Object
: ::Ruboty::SlackEvents::Filter::Rubotify
69 70 71 |
# File 'lib/ruboty/adapters/slack_events.rb', line 69 def rubotify #: ::Ruboty::SlackEvents::Filter::Rubotify @rubotify ||= ::Ruboty::SlackEvents::Filter::Rubotify.new(resolvers:) end |
#run ⇒ Object
@rbs!
type robotMessage = {
body: String,
from: String,
to: String,
original: receivedMessage?,
code: boolish?,
}
type receivedMessage = {
body: String,
from: String,
from_name: String,
to: String,
thread_ts: String?,
}
29 30 31 32 |
# File 'lib/ruboty/adapters/slack_events.rb', line 29 def run init connect end |
#say(message) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/ruboty/adapters/slack_events.rb', line 35 def say() Ruboty::SlackEvents::Logger.debug("say") { .to_json } text = if [:code] " ```\n \#{message[:body]}\n ```\n MARKDOWN\n else\n slackify.call(message[:body].to_s)\n end\n\n slack_client.chat_postMessage(\n channel: message[:to],\n attachments: [],\n markdown_text: text,\n thread_ts: message.dig(:original, :thread_ts)\n )\nend\n" |
#slack_client ⇒ Object
: Slack::Web::Client
57 58 59 |
# File 'lib/ruboty/adapters/slack_events.rb', line 57 def slack_client #: Slack::Web::Client @slack_client ||= ::Slack::Web::Client.new(token: ENV.fetch("SLACK_TOKEN", nil)) end |
#slackify ⇒ Object
: ::Ruboty::SlackEvents::Filter::Slackify
65 66 67 |
# File 'lib/ruboty/adapters/slack_events.rb', line 65 def slackify #: ::Ruboty::SlackEvents::Filter::Slackify @slackify ||= ::Ruboty::SlackEvents::Filter::Slackify.new(resolvers:) end |