Sha256: 9585d88f238cd2f3d7f3177ac178cb39f16316cd52a0b10eef2bdf183a7f7f02

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

require 'pdk'

module PDK
  module Validate
    module Tasks
      class TasksNameValidator < InternalRubyValidator
        INVALID_TASK_MSG = 'Invalid task name. Task names must start with a lowercase letter and can only contain lowercase letters, numbers, and underscores.'.freeze

        def name
          'task-name'
        end

        def pattern
          contextual_pattern('tasks/**/*')
        end

        def spinner_text
          'Checking task names (%{pattern}).' % {
            pattern: pattern.join(' '),
          }
        end

        def validate_target(report, target)
          task_name = File.basename(target, File.extname(target))
          if PDK::CLI::Util::OptionValidator.valid_task_name?(task_name)
            report.add_event(
              file:     target,
              source:   name,
              state:    :passed,
              severity: 'ok',
            )
            return 0
          else
            report.add_event(
              file:     target,
              source:   name,
              state:    :failure,
              severity: 'error',
              message:  INVALID_TASK_MSG,
            )
            return 1
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pdk-2.7.1 lib/pdk/validate/tasks/tasks_name_validator.rb
pdk-2.7.0 lib/pdk/validate/tasks/tasks_name_validator.rb