Sha256: afa7dba988445ebeab0dec7a8d2037a646749230a292aca5f4690d885772b779

Contents?: true

Size: 1.43 KB

Versions: 12

Compression:

Stored size: 1.43 KB

Contents

module Mutant
  class Runner
    # Runner for object config
    class Config < self

      # Return subject runners
      #
      # @return [Enumerable<Runner::Subject>]
      #
      # @api private
      #
      attr_reader :subjects

      # Return failed subjects
      #
      # @return [Enumerable<Subject>]
      #
      # @api private
      #
      def failed_subjects
        subjects.select(&:failed?)
      end
      memoize :failed_subjects

      # Test if run was successful
      #
      # @return [true]
      #   if run was successful
      #
      # @return [false]
      #   otherwise
      #
      # @api private
      #
      def success?
        failed_subjects.empty?
      end
      memoize :success?

      # Return strategy
      #
      # @return [Strategy]
      #
      # @api private
      #
      def strategy
        config.strategy
      end

    private

      # Run config
      #
      # @return [undefined]
      #
      # @api private
      #
      def run_subjects
        strategy = self.strategy
        strategy.setup
        @subjects = config.subjects.map do |subject|
          Subject.run(self, subject)
        end
        strategy.teardown
      end

      # Run with strategy management
      #
      # @return [undefined]
      #
      # @api private
      #
      def run
        report(config)
        run_subjects
        @end = Time.now
        report(self)
      end

    end # Config
  end # Runner
end # Mutant

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mutant-0.3.0.beta13 lib/mutant/runner/config.rb
mutant-0.3.0.beta12 lib/mutant/runner/config.rb
mutant-0.3.0.beta11 lib/mutant/runner/config.rb
mutant-0.3.0.beta10 lib/mutant/runner/config.rb
mutant-0.3.0.beta9 lib/mutant/runner/config.rb
mutant-0.3.0.beta8 lib/mutant/runner/config.rb
mutant-0.3.0.beta7 lib/mutant/runner/config.rb
mutant-0.3.0.beta6 lib/mutant/runner/config.rb
mutant-0.3.0.beta5 lib/mutant/runner/config.rb
mutant-0.3.0.beta4 lib/mutant/runner/config.rb
mutant-0.3.0.beta3 lib/mutant/runner/config.rb
mutant-0.3.0.beta2 lib/mutant/runner/config.rb