Class: Ruboty::SlackEvents::Filter::Slackify

Inherits:
Object
  • Object
show all
Defined in:
lib/ruboty/slack_events/filter/slackify.rb

Overview

Convert Ruboty text format to Slack text format

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resolvers:) ⇒ Slackify

Returns a new instance of Slackify.



11
12
13
# File 'lib/ruboty/slack_events/filter/slackify.rb', line 11

def initialize(resolvers:)
  @resolvers = resolvers
end

Instance Attribute Details

#resolversObject (readonly)

: Resolvers



8
9
10
# File 'lib/ruboty/slack_events/filter/slackify.rb', line 8

def resolvers
  @resolvers
end

Instance Method Details

#call(text) ⇒ Object



16
17
18
# File 'lib/ruboty/slack_events/filter/slackify.rb', line 16

def call(text) #: String
  replace_user_mentions(text)
end

#replace_user_mentions(text) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/ruboty/slack_events/filter/slackify.rb', line 21

def replace_user_mentions(text) #: String
  text.gsub(/@(?<user_name>\w+)/) do |user_mention|
    user_name = Regexp.last_match[:user_name]
     = resolvers.user_resolver.(user_name)
    next user_mention unless 

    "<@#{.id}>"
  end
end