Sha256: cd335c5b123e20c1ee1c56bff901c0a019969e33f031259ac3b94eb032077579

Contents?: true

Size: 694 Bytes

Versions: 3

Compression:

Stored size: 694 Bytes

Contents

# frozen_string_literal: true
require 'thredded/at_users'

module HTML
  class Pipeline
    class AtMentionFilter < Filter
      # @param context [Hash]
      # @options context :users_provider [#call(usernames)] given usernames, returns a list of users.
      def initialize(text, context = nil, result = nil)
        super text, context, result
        @text = text.to_s.delete("\r")
        @users_provider = context[:users_provider]
        @view_context = context[:view_context]
      end

      def call
        return html unless @users_provider
        html = Thredded::AtUsers.render(@text, @users_provider, @view_context)
        html.rstrip!
        html
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
thredded-0.6.0 lib/html/pipeline/at_mention_filter.rb
thredded-0.5.1 lib/html/pipeline/at_mention_filter.rb
thredded-0.5.0 lib/html/pipeline/at_mention_filter.rb