summaryrefslogtreecommitdiff
path: root/app/models/snippet_input_action_collection.rb
blob: 56c32c376c4c83d62092db6ab674f3beac32aa7d (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
# frozen_string_literal: true

class SnippetInputActionCollection
  include Gitlab::Utils::StrongMemoize

  attr_reader :actions

  delegate :empty?, :any?, :[], to: :actions

  def initialize(actions = [])
    @actions = actions.map { |action| SnippetInputAction.new(action) }
  end

  def to_commit_actions
    strong_memoize(:commit_actions) do
      actions.map { |action| action.to_commit_action }
    end
  end

  def valid?
    strong_memoize(:valid) do
      actions.all?(&:valid?)
    end
  end
end