Sha256: d4a97206b374b4a0d88397f615fccbf46589301afa307864bf9ad6853cb11974

Contents?: true

Size: 1001 Bytes

Versions: 3

Compression:

Stored size: 1001 Bytes

Contents

module Cucover
  module CliCommands
    class Cucumber

      LANGUAGE = 'rb'

      class << self
        attr_accessor :exit_status
      end

      def initialize(cli_args)
        Cucumber.exit_status = 0
        @cli_args = cli_args
      end

      def execute
        require 'rubygems'
        require 'cucumber'

        step_mother = ::Cucumber::StepMother.new
        step_mother.load_programming_language(LANGUAGE)
        require 'cucover/cucumber_hooks'

        execute_cuke do
          ::Cucumber::Cli::Main.new(ARGV).execute!(step_mother)
        end
      end

      private

      def execute_cuke
        ARGV.replace cucumber_args
        Cucumber.exit_status = yield
        Cucumber.exit_status = Cucumber.exit_status ? 1 : 0
        ARGV.replace @cli_args
      end

      def cucumber_args
        return nil unless @cli_args.index('--')
        first = @cli_args.index('--') + 1
        last = @cli_args.length - 1
        @cli_args[first..last]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cucover-0.1.4 lib/cucover/cli_commands/cucumber.rb
cucover-0.1.3 lib/cucover/cli_commands/cucumber.rb
cucover-0.1.2 lib/cucover/cli_commands/cucumber.rb