class DeployPin::TaskCriteria

Constants

COMMON_REGEXP
FORCE_REGEXP
SKIP_REGEXEP

Attributes

identifiers[R]

Public Class Methods

new(identifiers:) click to toggle source
# File lib/deploy_pin/task_criteria.rb, line 12
def initialize(identifiers:)
  @identifiers = identifiers
end

Public Instance Methods

suitable?(task) click to toggle source
# File lib/deploy_pin/task_criteria.rb, line 16
def suitable?(task)
  task_cover = ->(task, regexp) {
    items = identifiers.flat_map {|x| x.to_s.scan(regexp) }.flatten

    items & [task.group, task.uuid]
  }

  return false if task_cover.(task, SKIP_REGEXEP).any?
  return true if task_cover.(task, FORCE_REGEXP).any?

  task_cover.(task, COMMON_REGEXP).any? && !task.done?
end