Sha256: dcd859f62393afaac9ea5121d817e92478467d84be1e3243225ca6ee3df8bed4

Contents?: true

Size: 654 Bytes

Versions: 4

Compression:

Stored size: 654 Bytes

Contents

require_relative 'action/summarize'
require_relative 'action/comment'

module Gitlab
  module Triage
    module Action
      def self.process(rules:, **args)
        summarize = rules.delete(:summarize)
        comment = rules.any? && rules

        {
          Summarize => summarize,
          Comment => comment
        }.compact.each do |action, rule|
          act(action: action, rule: rule, **args) if rule
        end
      end

      def self.act(action:, dry:, **args)
        klass =
          if dry
            action.const_get(:Dry)
          else
            action
          end

        klass.new(**args).act
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gitlab-triage-0.13.0 lib/gitlab/triage/action.rb
gitlab-triage-0.12.0 lib/gitlab/triage/action.rb
gitlab-triage-0.11.0 lib/gitlab/triage/action.rb
gitlab-triage-0.10.0 lib/gitlab/triage/action.rb