Welcome to mirror list, hosted at ThFree Co, Russian Federation.

substitution_definition.rb « quick_actions « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cd4d202e8d09b2cacd061d8b149ccd792e8f6c59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# frozen_string_literal: true

module Gitlab
  module QuickActions
    class SubstitutionDefinition < CommandDefinition
      # noop?=>true means these won't get extracted or removed by Gitlab::QuickActions::Extractor#extract_commands
      # QuickActions::InterpretService#perform_substitutions handles them separately
      def noop?
        true
      end

      def match(content)
        content.match %r{^/#{all_names.join('|')}(?![\S]) ?(.*)$}
      end

      def perform_substitution(context, content)
        return unless content

        all_names.each do |a_name|
          content = content.sub(%r{/#{a_name}(?![\S]) ?(.*)$}i, execute_block(action_block, context, '\1'))
        end

        content
      end
    end
  end
end