Sha256: 6e229d6623f214a0b59d4c35abd9923848582418947f1240a9d0b14da5df631b

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

require 'hashie/dash'
require 'hashie/extensions/coercion'
require 'hashie/extensions/indifferent_access'
require 'polytrix/documentation/helpers/code_helper'

module Polytrix
  class Challenge < Hashie::Dash
    include Hashie::Extensions::Coercion

    # View heleprs
    include Polytrix::Documentation::Helpers::CodeHelper

    property :name
    property :description
    property :implementor
    property :suite, required: true
    property :vars, default: {}
    property :source_file
    coerce_key :source_file, Pathname
    property :basedir
    coerce_key :basedir, Pathname
    property :challenge_runner, default: ChallengeRunner.create_runner
    property :result
    property :env_file
    # coerce_key :vars, Polytrix::Manifest::Environment
    property :plugin_data, default: {}

    def run
      @result = challenge_runner.run_challenge self
    end

    def validate
      run unless @result
      # validators = Polytrix::ValidatorRegistry.validators_for self
      # validators.each do |validator|
      #   validator.validate self
      # end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
polytrix-0.1.0.pre lib/polytrix/challenge.rb